WPF InkCanvas 绘图 width/height 在不同环境下不一致
WPF InkCanvas drawing width/height not consistent in different environments
我有一个 InkCanvas 控件占据了我的整个屏幕。它需要鼠标或触摸输入来进行绘图。我有最基本的 InkCanvas 配置,它看起来像这样:
<InkCanvas Grid.Row="2" x:Name="inkCanvas">
</InkCanvas>
我可以使用鼠标和触摸输入来绘制笔画。就笔划 width/height 而言,行为是一致的(它们相同)。但是,当我尝试使用我的触摸注入 API 在同一个 InkCanvas 上绘图时(我使用 Win32 触摸功能将触摸注入 OS),笔画看起来更细。
我尝试通过添加以下内容来更改绘图属性:
<InkCanvas Grid.Row="2" x:Name="inkCanvas">
<InkCanvas.DefaultDrawingAttributes>
<DrawingAttributes Width="10" Height="10"/>
</InkCanvas.DefaultDrawingAttributes>
</InkCanvas>
进行此更改后,使用触摸注入绘制的笔划的宽度和高度按比例增加。但与鼠标或直接触摸输入相比,它们又要薄得多。
我的问题是是否有人使用 Windows 触摸注入 API 玩过 InkCanvas 并且确切知道为什么 InkCanvas 在直接触摸和注入触摸之间表现不同。
此外,除了我正在做的方式之外,还有其他方法可以设置 InkCanvas 笔划的宽度和高度吗?
好的,找到解决方案了。似乎在使用触摸输入时 OS 报告了一些默认压力。 InkCanvas 本身尊重这种压力并为其分配特定的值。
我的触摸注入 API 没有报告任何压力(例如,它是 0)。结果,笔画会显得更细。以下行修复了它:
<InkCanvas>
<InkCanvas.DefaultDrawingAttributes>
<DrawingAttributes IgnorePressure="True"/>
</InkCanvas.DefaultDrawingAttributes>
</InkCanvas>
我有一个 InkCanvas 控件占据了我的整个屏幕。它需要鼠标或触摸输入来进行绘图。我有最基本的 InkCanvas 配置,它看起来像这样:
<InkCanvas Grid.Row="2" x:Name="inkCanvas">
</InkCanvas>
我可以使用鼠标和触摸输入来绘制笔画。就笔划 width/height 而言,行为是一致的(它们相同)。但是,当我尝试使用我的触摸注入 API 在同一个 InkCanvas 上绘图时(我使用 Win32 触摸功能将触摸注入 OS),笔画看起来更细。
我尝试通过添加以下内容来更改绘图属性:
<InkCanvas Grid.Row="2" x:Name="inkCanvas">
<InkCanvas.DefaultDrawingAttributes>
<DrawingAttributes Width="10" Height="10"/>
</InkCanvas.DefaultDrawingAttributes>
</InkCanvas>
进行此更改后,使用触摸注入绘制的笔划的宽度和高度按比例增加。但与鼠标或直接触摸输入相比,它们又要薄得多。
我的问题是是否有人使用 Windows 触摸注入 API 玩过 InkCanvas 并且确切知道为什么 InkCanvas 在直接触摸和注入触摸之间表现不同。
此外,除了我正在做的方式之外,还有其他方法可以设置 InkCanvas 笔划的宽度和高度吗?
好的,找到解决方案了。似乎在使用触摸输入时 OS 报告了一些默认压力。 InkCanvas 本身尊重这种压力并为其分配特定的值。
我的触摸注入 API 没有报告任何压力(例如,它是 0)。结果,笔画会显得更细。以下行修复了它:
<InkCanvas>
<InkCanvas.DefaultDrawingAttributes>
<DrawingAttributes IgnorePressure="True"/>
</InkCanvas.DefaultDrawingAttributes>
</InkCanvas>