Как программно добавить дочернее окно в MainWindow в WPF?

#wpf #wpf-extended-toolkit

#wpf #wpf-extended-toolkit

Вопрос:

У меня есть дочернее окно типа:

 Xceed.Wpf.Toolkit.ChildWindow
  

и мое главное окно имеет тип System.Windows.Window
Как я могу программно перенести все мое дочернее окно в мое главное окно?

Комментарии:

1. Ответ на самом деле содержится в руководстве по расширенному инструментарию WPF.

2. @Evangelink Я нашел только эту страницу в документации, но, похоже, там нет упоминания о программной загрузке дочернего окна wpftoolkit.codeplex.com /…

3. На самом деле, там говорится, что тип главного окна должен быть типа WindowContainer

Ответ №1:

Я нашел решение: в вашем xaml главного окна:

 <Window x:Class="WpfApplicationTestChildWindow.Window2"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApplicationTestChildWindow"
        xmlns:xceed="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit"
        xmlns:primitive="clr-namespace:Xceed.Wpf.Toolkit.Primitives;assembly=Xceed.Wpf.Toolkit"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <primitive:WindowContainer Name="cntr1">
        </primitive:WindowContainer>
    </Grid>
</Window>
  

и в коде, лежащем в основе:

 using System.Windows;
namespace WpfApplicationTestChildWindow
{
    public partial class Window2 : Window
    {
        public Window2()
        {
            InitializeComponent();
            ChildWindow1 child1 = new ChildWindow1();
            cntr1.Children.Add(child1);
            child1.Show();
        }
    }
}