需要在 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。
我有一个自定义控件和结构,因为矩形被放置在 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。