Как стилизовать подсказки клавиш? - PullRequest
1 голос
/ 25 июня 2019

Я пытаюсь найти стиль по умолчанию для элемента управления 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 - Стиль подсказки клавиш

1 Ответ

1 голос
/ 25 июня 2019

Установите для свойства 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.

...