그림을 표시하는 데 사용되는 "캔버스"이라는 최상위 레이어가 있습니다. 그런 다음 내 작업 공간 메뉴를 표시하는 "menuCanvas"이라는 가장 낮은 계층에 이벤트 menuCanvas_touchDown을 사용하려고합니다. 그러나 그림을 터치하면 menuCanvas_touchDown으로 이동합니다. 그것은 menuCanvas 레이어에서 찾아야합니다. WPF 레이어 이벤트 분리
<Canvas x:Name="menuCanvas"
TouchDown="menuCanvas_TouchDown" TouchUp="menuCanvas_TouchUp"
TouchMove="menuCanvas_TouchMove" TouchLeave="menuCanvas_TouchLeave"
TouchEnter="menuCanvas_TouchEnter"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
Background="Transparent"
IsManipulationEnabled="True">
<Canvas x:Name="drawCanvas"
TouchDown="drawCanvas_TouchDown" TouchUp="drawCanvas_TouchUp"
TouchMove="drawCanvas_TouchMove" TouchLeave="drawCanvas_TouchLeave"
TouchEnter="drawCanvas_TouchEnter"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
Background="Transparent"
IsManipulationEnabled="True">
<Canvas x:Name="canvas"></Canvas>
</Canvas>
</Canvas>
나는 영상과 아무것도 menuCanvas_touchDown 이벤트에 일어날 터치합니다. 어떻게이 문제를 해결할 수 있습니까? 나는 e.handle을 사용하려고하는데 이미지의 조작을 깨뜨린다.
감사
편집 :
이 drawCanvas_TouchDown 및 drawCanvas_TouchUp 코드가 있습니다.
private void drawCanvas_TouchDown(object sender, TouchEventArgs e)
{
if (state == (int)STATE.Pen)
{
if (_activeStrokes.TryGetValue(e.TouchDevice.Id, out stroke))
{
FinishStroke(stroke);
return;
}
// Create new stroke, add point and assign a color to it.
Stroke newStroke = new Stroke();
newStroke.Color = _touchColor.GetColor();
newStroke.Id = e.TouchDevice.Id;
// Add new stroke to the collection of strokes in drawing.
_activeStrokes[newStroke.Id] = newStroke;
}
}private void drawCanvas_TouchUp(object sender, TouchEventArgs e)
{
// Find the stroke in the collection of the strokes in drawing.
if (state == (int)STATE.Pen)
{
if (_activeStrokes.TryGetValue(e.TouchDevice.Id, out stroke))
{
FinishStroke(stroke);
}
}
}
당신은 당신이 아주 많이 drawCanvas_TouchUp' 등'drawCanvas_TouchDown''에 대한 – ChrisF