InkCanvas не работает на ощупь.
Это мой код Рисование контура мышью, но это не рисование на ощупь в первый раз, а затем начертание контура. Путь не рисуется при первом касании.
Xaml
<Grid PointerMoved="Grid_PointerMoved"
PointerPressed="Grid_PointerPressed">
<InkCanvas x:Name="inkCanvas" ManipulationMode="System" />
</Grid>
C#
// Тип InputDevice как None
private void InkPresenter_StrokesCollected(Windows.UI.Input.Inking.InkPresenter sender,
Windows.UI.Input.Inking.InkStrokesCollectedEventArgs args)
{
inkCanvas.InkPresenter.InputDeviceTypes =
Windows.UI.Core.CoreInputDeviceTypes.None;
}
private void Grid_PointerMoved(object sender, PointerRoutedEventArgs e)
{
inkCanvas.InkPresenter.InputDeviceTypes =
Windows.UI.Core.CoreInputDeviceTypes.Mouse |
Windows.UI.Core.CoreInputDeviceTypes.Touch;
}
private void Grid_PointerPressed(object sender, PointerRoutedEventArgs e)
{
inkCanvas.InkPresenter.InputDeviceTypes =
Windows.UI.Core.CoreInputDeviceTypes.Mouse |
Windows.UI.Core.CoreInputDeviceTypes.Touch;
}
1 ответ
Причина в том, что вы сбрасываете InputDeviceTypes
в None
после того, как рисунок завершен, поэтому сначала нажмите InkPresenter
поручено не рисовать.
Не вижу смысла менять InputDeviceTypes
когда они активируются каждый раз, когда вы нажимаете на InkCanvas
тем не мение. Таким образом, вы можете просто установить InputDeviceTypes
в Mouse
а также Touch
в конструкторе и просто удалите все три обработчика событий.