指针事件未在自定义控件中的 UI 个元素上触发

Pointer events not triggered on UI Elements in custom control

我正在创建一个包含多个 UI ElementsUserControl 应用程序。使用 ItemsControlUserControl 渲染为 StackPanel,因为要渲染的 UserControls 的数量取决于用户的输入。

UserControl中的基本XAML如下

<Grid x:Name="Viewport" VerticalAlignment="Top" HorizontalAlignment="Center">
    <Border x:Name="ViewportBorder" Background="White" BorderThickness="2, 2, 2, 2" BorderBrush="#FF353334" />
    <Image x:Name="Image" Margin="0" UseLayoutRounding="True" ManipulationMode="Scale"/>
    <InkCanvas x:Name="InkCanvas" />
    <Canvas x:Name="SelectionCanvas" CompositeMode="SourceOver" />
</Grid>

我想在用户将鼠标悬停在 SelectionCanvas 上时更改光标图标(基于我的情况的条件检查,您可能会在源代码中看到)。这看起来很简单,所以我尝试使用 PointerEntered & PointerExited 事件从 SelectionCanvas 捕获和释放指针。和 PointerMoved 更改光标图标。但似乎触发了 none 个事件。

我也尝试绑定到 Viewport 网格元素,但也没有成功。

我不确定我在这里错过了什么。有人可以帮我吗?任何帮助深表感谢。请找到完整的源代码here.

PointerEnteredPointerExited 事件被引发,前提是应该引发它们的区域被绘制,所以尝试设置 Background 属性 Canvas 到一些画笔,例如 Transparent:

<Canvas x:Name="SelectionCanvas" CompositeMode="SourceOver"             
        Background="Transparent"             
        PointerEntered="SelectionCanvas_PointerEntered"
        ...