2012-01-06 4 views
1

Мой главный проект находится под WPF, В моем решении у меня есть:Как добавить Winform Для WindowsFormsHost

  1. WinForm название которого Form1
  2. wpfForm название которого MainWindow.xaml

I хочу сделать эту работу: если нажата кнопка, я покажу форму Form1 в MainWindow точно так же, как MDI

+0

WPF не имеет встроенной поддержки MDI, вы можете использовать этот http://wpfmdi.codeplex.com/ или более сложный этот http://chronoswpf.codeplex.com/ – jcvegan

ответ

2

Спасибо за помощь мне в этом случае, ваши ответы действительно помогают мне , но я нашел свою цель: я просто хотел использовать окно формы (form1), чтобы МОФ окно (не мои окна управления формами) в моем код формы, я просто изменить наследование form1 в UserControl вместо формы, как этот

public partial class Form1: UserControl 
{ 
    /// my code ... 
} 

для этого я могу использовать этот UserControl в моем windosformshost, потому что моя форма UserControl сейчас (хорошая работа) , но я получил еще одну проблему, у моих элементов управления не было визуального sytle, причина этого я ищу в msdn, я получил ответ по этой ссылке visual_Problem и ответ был в enable_visual я имею в виду, прежде чем winformshot разместить мои окна формы (ofcource моего UserControl) я должен написать этот код:

System.Windows.Forms.Application.EnableVisualStyles(); 

Спасибо за ваши комментарии. С наилучшими пожеланиями, Hothreeyn.

0

См. MSDN Documentation f или WindowsFormsHost в WPF. В нижней части документации есть пример, показывающий, как его можно использовать для интеграции управления WinForms в WPF. Все, что вам нужно сделать, это изменить MaskedTextBox на ваш контроль: Form1.

0

Как я понимаю, вы не можете заставить весь WinForm взаимодействовать с WPF. Вы можете размещать элементы управления WinForm на поверхностях WPF через WindowsFormHost, но не в форме.

Если вы можете упаковать все содержимое вашей формы WinForm в WinForm UserControl, вы сможете это отключить.

1

из MSDN: WindowsFormsHost Class

Используйте элемент WindowsFormsHost поместить Windows Forms управления внутри вашего элемента WPF или страницы.

Чтобы разместить элемент WPF в элементе управления или форме Windows Forms, используйте элемент управления ElementHost .

Чтобы разместить элемент управления Windows Forms в элементе WPF, необходимо назначить элементу управления Windows Forms свойство Child.

Я думаю, вы должны обрабатывать макет MDI в WPF, а затем внутри дочерних окон WPF вы положили контроль WindowsFormsHost и как только вы создали окно формы управления назначать его в качестве дочернего WindowsFormsHost.

0

С помощью управления WindowsFormHost вы можете использовать элемент управления Windows Forms в WPF. Вы можете сослаться на это link.

+0

WPF не позволяет вам вводить форму в элемент FormHost ... только – jcvegan

0

WPF не имеет встроенной поддержки MDI, вы можете использовать этот wpfmdi.codeplex.com или более сложный этот chronoswpf.codeplex.ком