私はScrollviewer内にCanvas(InkCanvasではありません)を持っています。どちらもXAMLではなくコードビハインドで作成されます。ペンとマウスの入力でキャンバスに線を描きたいのですが、すべてうまくいきますが、ペンで入力デバイスをテストし、Scrollviewerがタッチ入力として認識しているようです。Scrollviewer内のUWPキャンバスは、マウス入力のようにペン入力を処理します。
私の質問です:Scrollviewerに、デバイスタイプからのすべての入力を無視するように指示できますか? Scrollviewerがキャンバスから発射すべきイベントを「食べている」ようにも思えるからです。
ここに私のScrollViewerのinitを:
private void SetUpScrollViewer()
{
scroll = new ScrollViewer();
scroll.VerticalScrollMode = ScrollMode.Auto;
scroll.HorizontalScrollMode = ScrollMode.Auto;
scroll.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
scroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
scroll.ZoomMode = ZoomMode.Enabled;
scroll.ManipulationMode = ManipulationModes.System;
scroll.HorizontalAlignment = HorizontalAlignment.Left;
scroll.VerticalAlignment = VerticalAlignment.Top;
scroll.IsZoomInertiaEnabled = false;
scroll.MinZoomFactor = 1;
scroll.MaxZoomFactor = 5;
}
ものは、私は私のキャンバスに使用するイベントです:入力デバイスがこの
ようなタッチが、すべての場合、すべてのチェックpublic void EnableDrawingOnCanvas(Canvas canvas)
{
//Adding the needed event handler.
canvas.PointerPressed += Canvas_PointerPressed;
canvas.PointerMoved += Canvas_PointerMoved;
canvas.PointerReleased += Canvas_PointerReleased;
canvas.PointerExited += Canvas_PointerExited;
}
そして、それらのイベント
if (e.Pointer.PointerDeviceType != Windows.Devices.Input.PointerDeviceType.Touch){...}
しかし、これらのイベントでは、私のキャンバスの入力デバイスをチェックすることができます。 ScrollviewerへのイベントはCanvas afaikに渡されません。
これは魅力的です。どうもありがとう。 – eXodiquas
ようこそ。 –