是否可以在System.Windows.UIElement中打包舊的System.Windows.Forms控件?我知道Browser Control是以某種方式包裝的,基礎來自System.Windows.Forms。在System.Windows.UIElement中從System.Windows.Forms中打包控件
如果這是可能的,實施是否會造成任何後果?
是否可以在System.Windows.UIElement中打包舊的System.Windows.Forms控件?我知道Browser Control是以某種方式包裝的,基礎來自System.Windows.Forms。在System.Windows.UIElement中從System.Windows.Forms中打包控件
如果這是可能的,實施是否會造成任何後果?
您可以在您的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>
有WindowsFormsHost類,但我會添加註意事項。如果您使用的是WinForms中的所有舊控件,並且與WPF混合使用,那麼對於用戶而言,這並不是一個好的體驗。我假設你已經被告知你不能或沒有時間,但是你真的應該考慮用WPF控件替換你現有的控件。除非你有很多認真複雜的自繪東西,這不應該是太多的努力。
所以我的建議是開始創建現有控件的WPF版本(或從像Telerik這樣的人那裏購買任何非特定於域的控件,例如工具欄等),並且只保留Winforms控件用於您創建的超複雜的定製控件。即使那樣,你也應該計劃進行「第二階段」來取代它們。你的用戶會爲此感謝你。
在WPF窗口中包含WinForms控件時發現了什麼問題?我聽說過,人們會遇到問題,但在我編寫的混合WPF/WinForms的東西中,並沒有將這兩者結合起來的真正困難。當然,我所做的所有整合計劃都是以對空間和重點的理解。也許我只是避免了一些明顯的陷阱而沒有意識到這一點,或者我只是很幸運。 – 2009-11-19 09:54:14
嗯,我真的指的是外觀。除非支付了大量的關注,否則winforms控件的外觀將會對wpf的東西產生衝擊。 – 2009-11-19 13:10:35