如何设置按键提示的样式?

时间:2019-06-25 13:41:01

标签: wpf xaml styling

我正在尝试为KeyTip控件找到默认样式;因此我可以更改默认值并设置自己的KeyTip样式。但是我找不到运气。

所以我尝试了这个:

<Style x:Key="MainKeyTipStyle" TargetType="KeyTipControl" >
    <Setter Property="Background" Value="Green"/>
    <Setter Property="Foreground" Value="Black"/>
    <Setter Property="BorderBrush" Value="Red"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Setter Property="Effect" Value="{x:Null}"/>
</Style>

在普通按钮上:

<Button 
    x:Name="buttonTEST" 
    Content="_TEST" 
    KeyTipService.KeyTip="T" 
    KeyTipService.KeyTipStyle="{StaticResource MainKeyTipStyle}" 
    Click="buttonTEST_Click" 
    />

当我运行测试并按Alt时,它最终看起来像这样:

KeyTip Style Test

我想要纯色背景色。没有我测试中的渐变/淡入淡出效果。 如何摆脱这种默认效果?

任何帮助将不胜感激。

以下是我看过但没有帮助的链接:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/e0d1336c-2f95-494b-8c4e-3db8d5ab6761/how-to-style-the-keytip-pop-up-background-in-the-microsoft-ribbon?forum=officegeneral

MSDN - Key Tip Style

1 个答案:

答案 0 :(得分:1)

Template样式将ControlTemplate属性设置为自定义KeyTipControl

<Style x:Key="MainKeyTipStyle" TargetType="KeyTipControl" >
    <Setter Property="Background" Value="Green"/>
    <Setter Property="Foreground" Value="Black"/>
    <Setter Property="BorderBrush" Value="Red"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Setter Property="Effect" Value="{x:Null}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="KeyTipControl">
                <Border Name="OuterBorder"
                        Background="{TemplateBinding Background}"
                        BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="{TemplateBinding BorderThickness}"
                        Padding="{TemplateBinding Padding}">
                    <TextBlock Text="{TemplateBinding Text}" HorizontalAlignment="Center"/>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

默认值包含两个Border元素。