@kokapuk

Как менять цвет при наведении на контрол?

Попробовал так, но не работает.
<Window.Resources>
        <ControlTemplate TargetType="Button" x:Key="btTemp">
            <Border x:Name="ButtonBorders" Background="{TemplateBinding Background}" BorderThickness="0" CornerRadius="5" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}">
                <ContentControl Foreground="{TemplateBinding Foreground}" Content="{TemplateBinding Content}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}"/>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter TargetName="ButtonBorders" Property="Background" Value="LightSeaGreen"/>
                    <Setter Property="Control.Foreground" Value="DarkOliveGreen"/>
                    <Setter Property="Cursor" Value="Hand"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </Window.Resources>
    <Grid Background="#FF6A6A6A">
        <Button Template="{StaticResource btTemp}" Content="Button" HorizontalAlignment="Left" Margin="268,214,0,0" VerticalAlignment="Top" Width="174" Height="67" FontSize="22" FontFamily="Segoe UI Black" Background="#FF785A5A" Foreground="White"/>

    </Grid>
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
gdt
@gdt
Программист
Вот так работает:
<ControlTemplate x:Key="TestButtonTemplate" TargetType="Button">
    <Border Background="{TemplateBinding Background}"
            BorderThickness="0"
            CornerRadius="5"
            Height="{TemplateBinding Height}"
            Width="{TemplateBinding Width}">
        <ContentControl Foreground="{TemplateBinding Foreground}"
                        Content="{TemplateBinding Content}"
                        VerticalAlignment="Center"
                        HorizontalAlignment="Center"
                        FontSize="{TemplateBinding FontSize}"
                        FontFamily="{TemplateBinding FontFamily}"/>
    </Border>

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


Лениво разбираться в причинах, но наверное вам нужно менять свойства самого контрола, раз вы на них биндитесь в Border
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы