在多点触控应用程序中同时按下多个按钮

时间:2014-01-27 15:12:20

标签: c# wpf multi-touch

我的WPF应用程序有多个按钮,支持多点触控,但不会将按下的样式应用于按下的按钮。更具体一点:

  • 我触摸第一个按钮,隧道正确发生(我已将IsPressed Button属性绑定到应用样式的Trigger)
  • 我触摸第二个按钮而不释放第一个按钮,后面的代码正确捕获了引发的事件,但在这种情况下,模板未应用。

注意:按钮是同一个类的两个实例,并且在按下一次时正常工作。代码非常简单:

<Button Focusable="False" Style="{DynamicResource ButtonStyle}" Grid.Column="{Binding GridColumn}" Grid.Row="{Binding GridRow}" Margin="{Binding Margin}" Width="{Binding Width}" Height="{Binding Height}"  Visibility="{Binding Visibility}" Stylus.IsPressAndHoldEnabled="False" Stylus.IsFlicksEnabled="False" >
     <i:Interaction.Triggers>
       <i:EventTrigger EventName="TouchDown">
           <cmd:EventToCommand Command="{Binding ButtonDownCommand}" PassEventArgsToCommand="True"/>
        </i:EventTrigger>
        <i:EventTrigger EventName="TouchUp">
          <cmd:EventToCommand Command="{Binding ButtonUpCommand}" PassEventArgsToCommand="True"/>
        </i:EventTrigger>
     </i:Interaction.Triggers>
    </Button>

应用的风格:

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
       <Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="True" />
    </MultiDataTrigger.Conditions>
                <Setter TargetName="glass" Property="Effect" Value="{StaticResource PressedShadow}"/>
                <Setter TargetName="glass" Property="Margin" Value="20"/>
                <Setter TargetName="blink" Property="Effect" Value="{StaticResource PressedShadow}"/>
                <Setter TargetName="blink" Property="Margin" Value="20"/>
 </MultiDataTrigger>

想法?

0 个答案:

没有答案