2010-02-12 11 views
2

我工作的一個WPF應用程序,和我很好奇怎樣才能給這個應用程序改寫到一個表面應用程序,如果我們想通過多點觸控某一天來控制它。重寫一個WPF應用表面

是不是有可能,我們可以重複使用我們的WPF應用程序的大型零件,順利地將其傳輸到表面,或者是表面完全不同,我們可能不得不寫表面一個全新的GUI?或者我可以在Surface上實際使用WPF應用程序嗎?正如你也許可以告訴我關於表面的所有信息一樣 - 所以請告訴我任何明顯的事情!

我們做什麼,我們可以與視圖和業務邏輯之間的良好分離的應用模式 - 使用MVVM模式等,但我們需要建立表面的全新的GUI?

回答

3

如果你的目標很簡單,就是多點觸控添加到您真的應該在Windows 7在看.NET 4.0這樣做,你可以與你現有的應用程序開始,只需添加任何多點觸控功能正常的桌面應用程序你覺得有用。

如果您確實轉到Surface,那麼您在代碼中看到的主要更改(如果執行直接端口)會將所有內置輸入控件更改爲Surface版本(即Button to s:SurfaceButton)。這需要完成以支持Surface的Contact輸入,這些輸入不會像Button.Click那樣激活標準控件。

沒有與曲面的應用程序,你不能真正去感受只是用桌面上的模擬器了幾個比較重要的關注。首先是多用戶體驗,不僅包括它支持的大量同步觸摸,還包括UI的多方向定位。由於Surface是一個水平屏幕,用戶可以從任何一側進入應用程序,並且應用程序本身也可以垂直翻轉,具體取決於用戶從哪個方向啓動應用程序。這可能需要對如何重構桌面應用程序的功能有很多想法。 Surface還具有1024x768的固定分辨率,這也可能導致大尺寸屏幕的動態大小的桌面應用程序出現尷尬轉變。

2

如果應用程序僅使用基本的WPF控件,那麼理想情況下您可能需要移除Surface的更改非常少。只需要將所有典型的WPF控件替換爲相應的Surfacecontrols並添加適當的Contact事件(如果您已在代碼中執行了一些Mousevents)。

基於MultiTouch在Surface上可能需要的特殊經驗,XAML Styles和LayOut可能會有很大的不同,但是當您遵循適當的MVVM時,您不需要更改任何C#代碼以及所有UserControl結構的項目。因此,請務必使項目爲查看視圖模型,這樣你可以有一個SurfaceView和WPFView項目指同一MVVM DLL。