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>