Обтекание элементов управления из System.Windows.Forms в System.Windows.UIElement - PullRequest
1 голос
/ 18 ноября 2009

Можно ли обернуть старые элементы управления System.Windows.Forms в System.Windows.UIElement? Я знаю, что Browser Control каким-то образом обернут и база взята из System.Windows.Forms.

Если это возможно, будет ли реализация иметь какие-либо последствия?

Ответы [ 2 ]

4 голосов
/ 18 ноября 2009

Вы можете разместить элемент управления Windows-формами в формах WPF. Просто оберните его внутри элемента WindowsFormsHost. Здесь показано, как разместить окно маскированных оконных форм в окне WPF.

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"  
    Title="HostingWfInWpf"
    >

  <Grid>

    <WindowsFormsHost>
      <wf:MaskedTextBox x:Name="mtbDate" Mask="00/00/0000"/>
    </WindowsFormsHost>

  </Grid>


</Window>
0 голосов
/ 18 ноября 2009

Существует класс WindowsFormsHost , хотя я бы добавил предостережение. Если вы используете все свои старые элементы управления из winforms, смешанные с WPF, это не будет хорошим опытом для пользователя. Я предполагаю, что вам сказали, что вы не можете или у вас нет времени, но на самом деле вам следует заменить существующие элементы управления на WPF. Если у вас не много сложных вещей, нарисованных владельцем, это не должно быть слишком большим усилием.

Поэтому я рекомендую начать создавать WPF-версии ваших существующих элементов управления (или купить набор у кого-то вроде Telerik для любых созданных вами элементов, не относящихся к домену, таких как панели инструментов и т. Д.), И сохранять только элементы управления Winforms для очень сложные элементы управления на заказ вы создали. Даже тогда вы должны планировать «фазу 2», чтобы заменить их. Ваши пользователи будут вам благодарны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...