Кнопка Путь к изображению не фокусируется в wpf - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть кнопка закрытия.Мое требование заключается в том, что когда пользователь нажимает кнопку мыши, цвет фона кнопки изменится.

У меня есть путь внутри кнопки для символа "X".При наведении курсора на фон меняется сработает корректно.Но очень близко, чтобы навести курсор на путь, меняется только цвет фона.

Поэтому, пожалуйста, кто-нибудь может подсказать, как решить эту проблему,

MyStyleCode:

<Style x:Key="closeButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="Background" Value="White" />
    <Setter Property="BorderBrush" Value="LightGray" />
    <Setter Property="Foreground" Value="{DynamicResource ForegroundBrush}" />
    <Setter Property="BorderThickness" Value="1" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Border x:Name="bd">
                    <Path Margin="0"
                          HorizontalAlignment="Center"
                          VerticalAlignment="Center"
                          Data="M0,0 L8,8 M8,0 L0,8"
                          Stroke="White"
                          StrokeThickness="2" />
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsDefaulted" Value="true">
                        <Setter TargetName="bd" Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
                    </Trigger>
                    <Trigger Property="IsMouseOver" Value="true">
                        <Setter TargetName="bd" Property="Background" Value="Red" />
                    </Trigger>
                    <Trigger Property="IsPressed" Value="true">
                        <Setter TargetName="bd" Property="Background" Value="Red" />
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Кнопка

<Button Grid.Column="1"
        Width="40"
        Height="25"
        Margin="0,0,5,0"
        HorizontalAlignment="Right"
        VerticalAlignment="Center"
        HorizontalContentAlignment="Center"
        Style="{StaticResource closeButtonStyle}"
        ToolTip="Close" />

1 Ответ

0 голосов
/ 24 сентября 2018

Попробуйте установить Style.Triggers для вашего Button.Не только на ваш Content (Path для вашего случая).Мол,

<Style x:Key="closeButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="Background" Value="Transparent" />
    <Setter Property="BorderBrush" Value="LightGray" />
    <Setter Property="Foreground" Value="{DynamicResource ForegroundBrush}" />
    <Setter Property="BorderThickness" Value="1" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Border x:Name="bd" Background="{TemplateBinding Background}">
                    <Path Margin="0"
                          HorizontalAlignment="Center"
                          VerticalAlignment="Center"
                          Data="M0,0 L8,8 M8,0 L0,8"
                          Stroke="Black"
                          StrokeThickness="2" />
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <Trigger Property="IsDefaulted" Value="true">
            <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
        </Trigger>
        <Trigger Property="IsMouseOver" Value="true">
            <Setter Property="Background" Value="Red" />
        </Trigger>
        <Trigger Property="Button.IsPressed" Value="true">
            <Setter Property="Background" Value="Red" />
        </Trigger>
    </Style.Triggers>
</Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...