2009-11-18 3 views
1

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

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

ответ

4

Вы можете разместить элемент управления 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

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

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

+0

Какие проблемы вы обнаружили, включая элементы управления WinForms в Windows WPF? Я слышал, что люди будут испытывать проблемы, но в смешанных материалах WPF/WinForms, которые я закодировал, не было никаких реальных проблем, связанных с этими двумя. Конечно, вся интеграция, которую я сделал, была спланирована с пониманием воздушного пространства и фокуса. Возможно, я просто избегал некоторых очевидных ловушек, не осознавая этого, или, может быть, мне просто повезло. –

+0

Ну, действительно, я имею в виду внешний вид. Если сумма оплаты не будет выплачена, внешний вид элементов управления winforms будет зависеть от материала wpf. –

Смежные вопросы