2009-11-18 64 views

回答

4

您可以在您的WPF表單中託管一個Windows窗體控件。只需將其包裝在WindowsFormsHost元素中即可。這顯示瞭如何在WPF窗口中託管Windows窗體蒙版測試框。

<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控件用於您創建的超複雜的定製控件。即使那樣,你也應該計劃進行「第二階段」來取代它們。你的用戶會爲此感謝你。

+0

在WPF窗口中包含WinForms控件時發現了什麼問題?我聽說過,人們會遇到問題,但在我編寫的混合WPF/WinForms的東西中,並沒有將這兩者結合起來的真正困難。當然,我所做的所有整合計劃都是以對空間和重點的理解。也許我只是避免了一些明顯的陷阱而沒有意識到這一點,或者我只是很幸運。 – 2009-11-19 09:54:14

+0

嗯,我真的指的是外觀。除非支付了大量的關注,否則winforms控件的外觀將會對wpf的東西產生衝擊。 – 2009-11-19 13:10:35