Установить цвет наведения мыши для кнопки в WPF - PullRequest
0 голосов
/ 11 июня 2018

Я использую следующий стиль для кнопок в моем приложении WPF.Здесь, как я могу установить цвет при наведении курсора мыши на кнопку?

 <Style TargetType="{x:Type Button}" x:Key="ButtonStyle2">
    <Setter Property="FontSize" Value="16" />
    <Setter Property="Background" Value="#FF45414D" />
    <Setter Property="Height" Value="35" />
    <Setter Property="Foreground" Value="White" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border CornerRadius="6,6,6,6" Background="#FF45414D" >
                    <ContentPresenter x:Name="contentPresenter" 
                                      ContentTemplate="{TemplateBinding ContentTemplate}" 
                                      Content="{TemplateBinding Content}" 
                                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                                      Margin="{TemplateBinding Padding}" 
                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                      />
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Затем я изменил свой код следующим образом, чтобы добавить свойство наведения мыши. Нажмите здесь Но все равно он не работает.

<Style TargetType="{x:Type Button}" x:Key="ButtonStyle2">
    <Setter Property="FontSize" Value="16" />
    <Setter Property="Background" Value="#FF45414D" />
    <Setter Property="Height" Value="35" />
    <Setter Property="Foreground" Value="White" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border CornerRadius="6,6,6,6" Background="#FF45414D" >
                    <ContentPresenter x:Name="contentPresenter" 
                                      ContentTemplate="{TemplateBinding ContentTemplate}" 
                                      Content="{TemplateBinding Content}" 
                                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                                      Margin="{TemplateBinding Padding}" 
                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                      />

                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="Red"/>
        </Trigger>
    </Style.Triggers>
</Style>

1 Ответ

0 голосов
/ 11 июня 2018

Как насчет записи триггера для границы?

<Style TargetType="{x:Type Button}">
<Setter Property="FontSize" Value="16" />
<Setter Property="Background" Value="Red" />
<Setter Property="Height" Value="35" />
<Setter Property="Foreground" Value="White" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border >
                    <ContentPresenter x:Name="contentPresenter" 
                      ContentTemplate="{TemplateBinding ContentTemplate}" 
                      Content="{TemplateBinding Content}" 
                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                      Margin="{TemplateBinding Padding}" 
                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                      />
                    <Border.Style>
                        <Style TargetType="Border">
                            <Setter Property="Background" Value="#FF45414D"/>
                            <Setter Property="CornerRadius" Value="6,6,6,6"/>
                            <Style.Triggers>
                                <Trigger Property="IsMouseOver" Value="True">
                                    <Setter Property="Background" Value="Red"/>
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </Border.Style>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Вы можете написать триггер для изменения фона в теге border.

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