2014-12-08 80 views
0

我有一个标签控件,我已经将下面的样式应用到此标签,以便它看起来像一个红色的圆角按钮。WPF标签点击事件没有被解雇

<Style x:Key="LabelButton" TargetType="{x:Type Label}"> 
     <Setter Property="Background" Value="#ff6666" /> 
     <Setter Property="Foreground" Value="White"/> 
     <Setter Property="FontFamily" Value="OpenSans"/> 
     <Setter Property="FontSize" Value="25"/> 
     <Setter Property="HorizontalContentAlignment" Value="Center"/> 
     <Setter Property="VerticalContentAlignment" Value="Center"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Label}"> 
        <Border Name="Border" Background="#FF6666" BorderBrush="#FF6666" BorderThickness="1" CornerRadius="7" Padding="3"> 
         <ContentPresenter Content="{TemplateBinding Content}" 
              ContentTemplate="{TemplateBinding ContentTemplate}" 
              VerticalAlignment="Center" 
              HorizontalAlignment="Center"/>                      
        </Border>       
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

我已经利用一个标签,并应用这种风格到那个标签,并添加处理程序“触地”

<Label x:Name="lblNext" Style="{StaticResource LabelButton}" Grid.Row="4" Width="250" Height="75" PreviewTouchUp="lblNext_TouchDown"> 
      Next : Step 3 
     </Label> 

但事件不被解雇。我也尝试过所有预览事件。我错过了什么? 我想触发此标签的TouchDown和鼠标事件。

+3

为什么你使用标签,如果你明显想要一个按钮或链接按钮的行为? – 2014-12-08 06:55:54

+0

是的.. ..是正确的...风格的按钮,而不是一个标签 – 2014-12-08 06:59:22

+1

因为我正在维护项目,这个标签有很多其他风格,他们已经在各地使用它有相同的外观和感觉。所以我不能直接摆脱这一点,并使用按钮,而不是... – user2243747 2014-12-08 07:13:30

回答

1

你可以尝试MVVM的方式来做到这一点,当然如果有可能的话。不应该很难。 我使用Expression Blend的System.Windows.Interactivity.dll实现了预期效果。

在您的XAML:

<Label x:Name="lblNext" Style="{StaticResource LabelButton}" Grid.Row="4" Width="250" Height="75" PreviewTouchUp="lblNext_TouchDown"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="MouseDown"> 
      <i:InvokeCommandAction Command="{Binding LabelClicked}" /> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
    Next : Step 3 
</Label> 

https://github.com/mgigirey/WPFLabelClick提供和榜样。