1

現在、Surface 2.0 アプリケーションを開発しています。タッチでドラッグしてサイズ変更できるカスタム コントロールを開発しようとしています。これを行う最も簡単な方法は、操作イベントであると考えました。

問題: カスタム コントロールが 内にSurfaceScrollViewerあり、ScrollViewer がすべての操作イベントを盗んでいるように見えます。コントロールで発生することはありません。SurfaceScrollViewerを通常に変更するとScrollViewer、操作イベントが正常に発生します。例:

<s:SurfaceScrollViewer HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
    <local:CustomControl IsManipulationEnabled="True" ManipulationStarting="OnManipulationStarting" />
</s:SurfaceScrollViewer>

内で操作イベントを受け取るにはどうすればよいSurfaceScrollViewerですか? 正直なところ、なぜこれが起こっているのかさえわかりません。イベントのバブリングはそのようなことを防ぐためのものではありませんか? 私の理解でCustomControlは、イベントの前にイベントを受け取り、SurfaceScrollViewerそれを処理する機会を得る必要があります。なぜこれが機能しないのですか?

ありがとう

4

1 に答える 1

1

SurfaceScrollViewer の備考セクションで説明されているように、 SurfaceScrollViewerはパンをサポートするためにすべての操作イベントを取得する必要があります。

この動作を無効にしたい場合は、PanningModeプロパティを に設定できますが、SurfaceScrollViewerNoneのように感じられなくなる可能性があります。

于 2012-08-09T14:05:04.797 に答える