Scrollviewer 안에 캔버스가 있습니다 (InkCanvas가 아닙니다). 두 가지 모두 XAML에서는 작성되지 않지만 코드 숨김에서는 작성됩니다. 펜과 마우스 입력으로 캔버스에 선을 그려야합니다. 모든 것이 잘 작동하지만 펜을 입력 장치로 사용하여 모든 것을 테스트했으며 Scrollviewer가 모든 것을 스크롤하기 시작하기 때문에 터치 입력으로 인식하는 것 같습니다.Scrollviewer 내의 UWP Canvas가 마우스 입력과 같이 펜 입력을 처리합니다.
내 질문은 : Scrollviewer가 장치 유형의 모든 입력을 무시하도록 할 수 있습니까? 그것은 Scrollviewer가 Canvas에서 해고되어야하는 이벤트를 '먹는'것처럼 보이기 때문입니다. 여기
내에서 ScrollViewer 초기화 : 입력 장치가이
같은 터치를 제외한 모든 경우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;
}
그리고 그 사건의 모든 검사 :
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;
}
사람들은 내 캔버스에서 사용하는 이벤트입니다
if (e.Pointer.PointerDeviceType != Windows.Devices.Input.PointerDeviceType.Touch){...}
하지만 이러한 이벤트를 사용하면 입력 장치에서 Canvas를 확인할 수만 있습니다. Scrollviewer 이벤트는 Canvas afaik에 전달되지 않습니다.
이것은 매력처럼 작동합니다. 고마워. – eXodiquas
당신을 진심으로 환영합니다. –