gpt4 book ai didi

c# - 事件处理程序无法在 Windows Universal App 中使用 inkCanvas

转载 作者:太空宇宙 更新时间:2023-11-03 23:12:46 24 4
gpt4 key购买 nike

我无法使 PointerPressed、PointerReleased(任何指针事件)工作。

我写了这行代码来支持触摸

inkCanvas.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Touch;

网上找的解决办法,我试过这个

inkCanvas.PointerReleased += inkCanvas_PointerReleased;

还有这个

inkCanvas.AddHandler(PointerReleasedEvent, new PointerEventHandler(inkCanvas_PointerReleased), true);

也可以简单地通过 XAML:

     <InkCanvas x:Name="inkCanvas" 
PointerPressed="inkCanvas_PointerPressed"
PointerMoved="inkCanvas_PointerMoved" PointerReleased="inkCanvas_PointerReleased"
Tapped="inkCanvas_Tapped">

我正在我的设备(而不是模拟器)中测试该应用程序。我错过了什么?

最佳答案

有几件事需要考虑。首先,当您声明 InkCanvas 时,您需要让 UIElement 知道它可以期望的输入类型。常用的有3种。

CoreInputDeviceTypes.Mouse ( Desktop / Notebooks without touch capability )
CoreInputDeviceTypes.Pen ( Surfacebooks and other pen enabled devices )
CoreInputDeviceTypes.Touch ( all other devices that accept Touch )

因此您需要确保这些已在您的 InkCanvas 上声明。

完成后,查看从 XAML 调用时是否触发了您的指针事件。如果仍然无效,请尝试以下操作。

CoreInkIndependentInputSource  core = CoreInkIndependentInputSource.Create(inkCanvas.InkPresenter);
core.PointerPressing += Core_PointerPressing;
core.PointerReleasing += Core_PointerReleasing;
core.PointerMoving += Core_PointerMoving;

编辑 2: 以下是所有 3 个操作的方法

        private void Core_PointerMoving(CoreInkIndependentInputSource sender, PointerEventArgs args)
{
throw new NotImplementedException();
}

private void Core_PointerReleasing(CoreInkIndependentInputSource sender, PointerEventArgs args)
{
throw new NotImplementedException();
}

private void Core_PointerPressing(CoreInkIndependentInputSource sender, PointerEventArgs args)
{
throw new NotImplementedException();
}

希望这对您有所帮助。

关于c# - 事件处理程序无法在 Windows Universal App 中使用 inkCanvas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38467349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com