Я пытаюсь переключиться с WinForms на WPF в моем приложении C#. Мое приложение WinForms - приложение MDI. Мне нужно сделать это также MDI в WPF. Как я могу заблокировать новое окно в моем приложении mainwindow или canvas в этом окне? Мое дочернее окно не может выйти за пределы главного окна приложения. Это дочернее окно должно отображаться в событии клика из пункта меню главного окна.WPF VS2013 - добавить новое окно для проекта как дочернего элемента главного окна
ответ
В вашей ситуации лучшим решением является использование System.Windows.Forms.Integration.ElementHost control. Этот contol позволяет вам поместить любой элемент управления WPF, который вам нравится. Выполните следующие действия: 1) В Windows Forms проекта создать дочернюю форму 2) Внутри этой формы добавить контроль System.Windows.Forms.Integration.ElementHost 3) в коде позади этого smomething так:
wpfElementHost.Child = new System.Windows.Controls.TextBlock()
{
Text = "Hello from WPF world.",
FontSize = 25,
FontStyle = System.Windows.FontStyles.Italic,
FontWeight = System.Windows.FontWeights.Bold,
TextAlignment = System.Windows.TextAlignment.Center
};
Примечание Я использовал полное имя, потому что Windows Forms и WPF имеют много общего. В моем случае wpfElementHost - System.Windows.Forms.Integration.ElementHost. Вы можете разместить любой элемент управления, например. просто создайте пользовательский элемент управления или пользовательский элемент управления как класс библиотеки и используйте их в приложении форм Windows. Надеюсь, это помогло. Дайте мне знать, правильно ли я ответил на ваш вопрос.
К сожалению, мы не поняли :(Я не пишу WinForms-приложения, а WPF, и мне нужны некоторые функции WinForms - главное, чтобы создать в новом окне Windows WPF и установить его в дочернее окно главного окна и настроить, что он не может выбраться из этого главное окно. – dzilupl
Показать скриншот –
Посмотрите на [Интерфейс нескольких документов WPF (MDI)] (http://wpfmdi.codeplex.com/) на CodePlex. – Clemens