如何使用相同的触摸触发ManipulationStarted多个UIElement?

时间:2016-04-22 13:16:51

标签: c# xaml silverlight windows-phone-8.1 windows-phone

我有一个带有4个UIElement的网格。我已经在所有元素上订阅了ManipulationStarted和ManipulationCompleted事件。

On ManipulationStarted我改变了元素的颜色,在ManipulationCompleted上我将它设置回原来的颜色。

这是有效的,但只适用于一个项目,如果我点击一个项目然后,不离开我的手指,我移动到另一个项目,它不会改变颜色。

更清楚:

This is the normal situation

这是我打开应用时看到的内容。网格中的4个UIElements(矩形)。

This is what happens when I press on an element

当我将手指放在矩形上时,这就是我所看到的。

This is what I want to happen

当我将手指放在一个矩形上然后我将手指放在另一个手指上而不抬起手指时,我想要发生这种情况,但它并没有发生。它只适用于一个矩形。

这是每个矩形上的事件代码:

private void Rectangle_ManipulationStarted(object sender, System.Windows.Input.ManipulationStartedEventArgs e)
{
    e.Handled = true;
    if(sender is Rectangle)
        ((Rectangle)sender).Fill = new SolidColorBrush(Colors.Purple);
}

private void Rectangle_ManipulationCompleted(object sender, System.Windows.Input.ManipulationCompletedEventArgs e)
{
    e.Handled = true;
    if (sender is Rectangle)
        ((Rectangle)sender).Fill = originalColor;
}

1 个答案:

答案 0 :(得分:0)

解决! :d

我在矩形上使用MouseEnter事件来改变颜色,并在包含它们的网格上使用MouseLeave将其设置回原始状态!它完美无瑕! :d