3

私はWPFアプリケーションに取り組んでいますが、いつかマルチタッチで制御したい場合、このアプリケーションをSurfaceアプリケーションに書き直すのに何が必要か知りたいです。

WPFアプリケーションの大部分を再利用してSurfaceにスムーズに転送できる可能性がありますか、それともSurfaceは完全に異なり、Surface用の完全に新しいGUIを作成する必要がありますか?または、Surfaceで実際にWPFアプリケーションを使用できますか?おそらくあなたが言うことができるように、私はSurfaceに関してまったく手がかりを持っていません-それで私にも明白なことを教えてください!

ビューとビジネスロジックを適切に分離して、MVVMパターンなどを使用して、アプリケーションをモデル化するためにできることを実行します。しかし、サーフェス用の完全に新しいGUIを構築する必要がありますか?

4

3 に答える 3

4

目標が単に通常のデスクトップアプリケーションにマルチタッチを追加することである場合は、Windows7の.NET4.0を実際に検討する必要があります。そうすることで、既存のアプリケーションから始めて、便利なマルチタッチ機能を追加することができます。

If you do go to Surface, the primary changes you'd see in your code if doing a direct port would be changing all of the built-in input controls to the Surface versions (i.e. Button to s:SurfaceButton). This needs to be done to support Surface's Contact inputs, which don't activate things like Button.Click on the standard controls.

There are a few more important concerns with Surface applications that you can't really get a feel for just using the emulator on your desktop. First is the multi-user experience, including not only the huge number of simultaneous touches it supports, but also the multi-directional orientation of the UI. Since the Surface is a horizontal screen users can come at the application from any side and the application itself can also be flipped vertically depending on which direction the user starts the application from. This can require a lot of thought around how the features of a desktop app need to be reworked. Surface also has a fixed resolution of 1024x768 which can also make for awkward transitions from dynamically sized desktop apps made for large screens.

于 2010-02-13T15:00:10.400 に答える
2

アプリが基本的なWPFコントロールのみを使用している場合、理想的には、Surfaceを移植するために必要な変更はごくわずかです。コードですでにいくつかのMouseventsを実行している場合は、すべての一般的なWPFコントロールを対応するSurfacecontrolに置き換え、適切なContactイベントを追加する必要があります。

もちろん、Surfaceで必要になる可能性のある特別なMultiTouchエクスペリエンスに基づいて、XAMLスタイルとLayOutはまったく異なる場合がありますが、適切なMVVMに従う場合は、プロジェクトの全体的なUserControl構造だけでなくC#コードも変更する必要はありません。したがって、プロジェクトをViewおよびViewModelとして作成し、同じMVVMdllを参照するSurfaceViewプロジェクトとWPFViewプロジェクトを作成できるようにしてください。

于 2010-02-13T00:58:22.930 に答える
1

現在、WPFはSurface開発の主要なプラットフォームです。

Microsoft Surfaceブログには、Surface開発に関連するWPFリソースに関するすばらしい記事があります。

于 2010-02-12T21:38:53.553 に答える