[英]Can a standalone WPF application create an interface that looks like a Flash interface?
WPF似乎是作為Adobe Flash的應用程序答案而創建的。 Silverlight用於創建網頁。 但是,可以將相同的功能引入到獨立的WPF應用程序中嗎? Scaleform允許Flash在非托管C ++游戲中使用。 WPF可以用於創建相同類型的接口嗎? 我讀過的東西似乎使我相信它可以。 但是,我還沒有看到任何顯示這種界面的應用程序的屏幕截圖。
絕對! WPF可以完成Flash在構建游戲UI方面可以做的一切,甚至更多。
WPF應用程序可以通過幾種方式運行:
(Silverlight是WPF的子集,可以作為獨立的應用程序運行或在瀏覽器中運行,但不能包含本機代碼)
與Flash不同,WPF真正有趣的是,它可以直接無縫地合並C ++代碼和DirectX / OpenGL UI元素。 它還可以直接調用代碼並與非托管C ++代碼共享數據結構。 對於Flash,這需要專用的運行時,例如Scaleform,並且並不完全兼容。 此外,與非托管代碼的連接也不是很干凈。
由於與非托管代碼和UI集成的功能直接內置於WPF中,因此無需像Scaleform這樣的外部供應商來構建任何東西。 因此,沒有人使用基於WPF的UI環境收集游戲的屏幕截圖,因為沒有人試圖出售任何東西。
通常是這樣做的:
<Window ...>
<Grid>
<WindowsFormsHost x:Name="host"/> <!-- Unmanaged code will be child of this hWnd -->
<Grid>
<!-- WPF UI elements here -->
</Grid>
</Grid>
</Window>
使用代碼:
InitializeUnmanagedUI(host.Handle);
這幾乎就是它的全部。
就數據而言,托管和非托管組件可以輕松地使用彼此的對象:非托管代碼可以通過IJW和C ++ / CLR使用托管對象。 托管代碼可以通過COM使用和綁定非托管對象。
是。 沒有理由不能這樣做。 您只需要做工作即可創建和應用樣式,使其看起來像您想要的任何樣式。
這是工作,但不是魔術。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.