using System.Globalization;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
using VideoConcat.Models;
using RadioButton = System.Windows.Controls.RadioButton;
namespace VideoConcat.Views
{
///
/// MainWindow.xaml 的交互逻辑
///
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new MainWindowModel();
// 窗口加载完成后执行
Loaded += MainView_Loaded;
}
public void MainView_Loaded(object sender, RoutedEventArgs e)
{
// 1. 为目标Grid创建列定义
SetupGridColumns(mainGrid);
// 2. 实例化已有视图(或获取已存在的视图实例)
var existingView = new VideoWindow(); // 这里是已有视图的实例
// 3. 将视图添加到指定列中(例如第1列,索引为1)
AddViewToColumn(mainGrid, existingView);
}
///
/// 为Grid设置列定义
///
private void SetupGridColumns(Grid grid)
{
// 清空现有列(可选)
grid.Children.Clear();
}
///
/// 将视图添加到Grid的指定列
///
/// 目标Grid
/// 要添加的视图(UserControl/FrameworkElement)
/// 列索引(从0开始)
private void AddViewToColumn(Grid grid, FrameworkElement view)
{
// 将视图添加到Grid的子元素中
grid.Children.Add(view);
}
private void Border_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
{
this.DragMove();
}
}
private void RadioButton_Checked(object sender, RoutedEventArgs e)
{
if (sender is RadioButton radioButton)
{
if (radioButton.Name == "extract")
{
SetupGridColumns(mainGrid);
// 2. 实例化已有视图(或获取已存在的视图实例)
var existingView = new ExtractWindow(); // 这里是已有视图的实例
// 3. 将视图添加到指定列中(例如第1列,索引为1)
AddViewToColumn(mainGrid, existingView);
}
if (radioButton.Name == "video")
{
// 1. 为目标Grid创建列定义
SetupGridColumns(mainGrid);
// 2. 实例化已有视图(或获取已存在的视图实例)
var existingView = new VideoWindow(); // 这里是已有视图的实例
// 3. 将视图添加到指定列中(例如第1列,索引为1)
AddViewToColumn(mainGrid, existingView);
}
}
}
}
}