我对下面的按钮样式所做的只是让按钮仅在 IsMouseOver 或 IsPressed 时可见。
它的编写方式甚至无法编译,找不到“Glyph”。如何清理这个问题,直到 IsMoueOver 时按钮可见?
Cheers,
Berryl
<Style x:Key="EditCommandButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Content">
<Setter.Value>
<TextBlock x:Name="Glyph" Width="30"
FontFamily="Wingdings 3" FontSize="24" Text="a" Visibility="Hidden"/>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="Border" Background="Transparent" CornerRadius="4">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Background" Value="LightBlue"/>
<Setter TargetName="Glyph" Property="Visibility" Value="Visible"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Border" Property="Background" Value="Orange"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
使 ContentPresenter 成为指定目标而不是 TextBlock。
<Style x:Key="EditCommandButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Content">
<Setter.Value>
<TextBlock FontFamily="Wingdings 3" FontSize="24" Text="a" />
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="Border" Background="Transparent" CornerRadius="4">
<ContentPresenter x:Name="theContent" Visibility="Hidden"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Background"
Value="LightBlue"/>
<Setter TargetName="theContent" Property="Visibility"
Value="Visible"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Border" Property="Background"
Value="Orange"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)