需要在 Touch Move 事件中获取子元素(e.Source)

Need to get child element(e.Source) on Touch Move event

我有一个自定义控件和结构,因为矩形被放置在 Canvas 中,我需要在触摸移动时获取相应的子元素源(矩形)(如触摸选择或触摸第一个元素移动触摸移动事件中 canvas 上的手指到最后一个元素)。

上述场景在鼠标移动事件中运行良好,当鼠标悬停在其上时我可以获得相应的子引用。

Xaml代码

 <Grid>
    <Canvas TouchMove="Canvas_TouchMove" MouseMove="Canvas_MouseMove" >
        <WrapPanel >
            <Rectangle Fill="Red" Name="Red" 
             Width="200" Height="200" 
             IsManipulationEnabled="true" />
            <Rectangle Fill="Blue" Name="Blue"
             Width="200" Height="200" 
             IsManipulationEnabled="true" />
            <Rectangle Fill="Yellow" Name="Yellow"
             Width="200" Height="200" 
             IsManipulationEnabled="true" />
            <Rectangle Fill="Green" Name="Green"
             Width="200" Height="200" 
             IsManipulationEnabled="true" />
            <Rectangle Fill="Pink" Name="Pink"
             Width="200" Height="200" 
             IsManipulationEnabled="true" />
            <Rectangle Fill="Red" Name="manRect5"
             Width="200" Height="200" 
             IsManipulationEnabled="true" />
        </WrapPanel>

    </Canvas>
</Grid>

C#

  /// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Canvas_TouchMove(object sender, TouchEventArgs e)
    {
        Console.WriteLine((e.Source as Rectangle).Name); ;
    }


    private void Canvas_MouseMove(object sender, MouseEventArgs e)
    {
        Console.WriteLine((e.Source as Rectangle).Name); ;

    }
}

在 TouchMove 上

在触摸移动时我总是只能得到第一个元素引用

鼠标移动 在鼠标移动时,我可以获得所有相应的子引用

尝试使用 PreviewStylusMove 或 StylusMove 而不是 TouchMove。