2014-12-08 78 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提供和榜樣。