C # Как заставить кнопку UWP XAML не показывать границу при наведении - PullRequest
1 голос
/ 23 июня 2019

Вот моя кнопка:

    <Button
        x:Name="buttonClear"
        Width="74"
        Height="52"
        Margin="3,175,0,0"
        Padding="8,1,8,5"
        HorizontalAlignment="Left"
        VerticalAlignment="Top"
        Content="C"
        FontSize="24"
        FontWeight="Normal"
        FocusVisualPrimaryBrush="Transparent"
        FocusVisualSecondaryThickness="0"
        Style="{ThemeResource ButtonRevealStyle}"
        Click="ButtonClear_Click" />

Как видите, я добавил:

FocusVisualPrimaryBrush="Transparent"
FocusVisualSecondaryThickness="0"

Я думал, что это избавит от серой границы, которая отображается, когда вы наводите указатель мыши на кнопку. Но это не сработало.

Я также попытался добавить в App.xaml следующее:

<Application.Resources>
    <SolidColorBrush x:Key="ButtonBackgroundPointerOver">Transparent</SolidColorBrush>
</Application.Resources>

Все еще нет результата. Должен ли я ссылаться на ключ где-нибудь еще?

Ответы [ 2 ]

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

Самое простое решение - просто скрыть границу с помощью BorderThickness="0"

В качестве альтернативы вы можете отредактировать полный стиль кнопки в соответствии с предложением visc.

0 голосов
/ 23 июня 2019

Вам необходимо изменить полный стиль Button. Полный стиль Button имеет определение VisualState для наведения. Просто измените или удалите раскадровку.

Посмотрите на эту ссылку, и вы найдете полное определение стиля кнопки по умолчанию. https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/button-styles-and-templates

Я лично создаю файл словаря ресурсов, который импортирую на все свои страницы, и, когда я определяю новые кнопки, я устанавливаю BasedOn для моего измененного стиля кнопок в словаре ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...