2011-07-04 24 views
34

理想情況下,我需要實現WP7控件,該控件可以添加到任何XAML並顯示動態交互式3D場景。定製WP7帶動態3D內容的Silverlight控件

目前我已經通過共享模式下的XNA實現了該功能,並且使用UIElementRenderer將UI呈現在場景的頂部。然而,這種解決方案是最佳方案,因爲

  1. 應用程序必須使整個屏幕,因爲在共享模式下,Silverlight不自行繪製任何東西。

  2. 我找不到任何檢測Silverlight控件需要更改其表示的方式,無論是由於用戶交互還是動畫。僅當3D場景因此發生變化時纔會渲染控件,因此它們缺乏原生WP7應用程序的光滑外觀。

那麼,有沒有辦法在一個控件中渲染3D場景,並讓Silverlight管理其餘的UI?

+1

Mmmmango http://www.silverlightshow.net/items/XNA-for-Silverlight-developers-Part-12-Mango-1.aspx – Denis

+1

@Denis,這個頁面討論'SharedGraphicsDeviceManager'和'UIElementRenderer'等。這是我現在使用的。這種方法有其缺點,請參閱我的問題。 – SnakE

回答

3

我找不到任何檢測Silverlight控件需要更改其表示的方式,無論是由於用戶交互還是動畫。僅當3D場景因此發生變化時纔會渲染控件,因此它們缺乏原生WP7應用程序的光滑外觀。

使場景中總是發生變化的東西,不一定是可見的或明顯的東西,這樣你就可以始終渲染場景而不會出現任何問題。