我有一个标签控件,我已将下面的样式应用于此标签,使其显示为红色圆角按钮。
<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>
我使用了一个标签并将此样式应用于该标签,并添加了处理器以便“触摸”&#39;
<Label x:Name="lblNext" Style="{StaticResource LabelButton}" Grid.Row="4" Width="250" Height="75" PreviewTouchUp="lblNext_TouchDown">
Next : Step 3
</Label>
但事件并没有被解雇。我也试过了所有的预览活动。我错过了什么吗? 我想为此标签触发TouchDown和鼠标注册事件。
答案 0 :(得分:1)
你可以尝试MVVM方式来做,当然,如果可能的话。应该不难。
我使用Exression 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中提供了示例和示例。