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); } } } } }