我有一个按钮样式+模板,如下所示:
<Style x:Key="ButtonStyle" TargetType="RepeatButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RepeatButton">
<Border Background="{DynamicResource {x:Static SystemColors.ControlColor}}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Path Data="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}">
<Path.Fill>
<SolidColorBrush x:Name="PathBrush" Color="{x:Static SystemColors.ControlDarkColor}" />
</Path.Fill>
</Path>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
按钮的使用方式如下:
<RepeatButton Style="{StaticResource ButtonStyle}" Content="M 0 4 L 8 4 L 4 0 Z" />
但是,只有当鼠标悬停在路径上而不是整个按钮上时,才能按下该按钮。当鼠标悬停在按钮上而不是在路径上时,如何按下按钮?
答案 0 :(得分:1)
这是因为Border
中ControlTemplate
元素的背景属性设置不正确。它预计Brush
,您提供了Color
。由于它是DynamicResource,因此根本没有设置画笔。因此,Click不可见。只需提供刷子。
这应该可以解决问题:)
<Border Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">