C# WPF не работает template button, которая в template window

141
23 февраля 2019, 19:30

Есть окно с кастомным стилем и в стиле кнопка MinimizeButton с кастомным Template, который изменяет ее Background на extensions:ButtonExtension.HighlightedBackground когда IsMouseOver = true. Если убрать кнопку из стиля окна то ее template работает нормально. А в стиле окна не работает тригер IsMouseOver = true

(мышка наведена)

Стиль окна:

<Style TargetType="{x:Type Window}" x:Key="ModifiedWindow">
    <Setter Property="OverridesDefaultStyle" Value="True"/>
    <Setter Property="ResizeMode" Value="CanResizeWithGrip"/>
    <Setter Property="WindowChrome.WindowChrome">
        <Setter.Value>
            <WindowChrome NonClientFrameEdges="None" CornerRadius="0" 
                    CaptionHeight="29"/>
        </Setter.Value>
    </Setter>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Window}">
                <Border BorderThickness="1"  Name="TopLine">
                    <Grid Background="{TemplateBinding Background}">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="29"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <Grid Background="White" Grid.Row="0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="Auto"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition/>
                            </Grid.RowDefinitions>
                                <Grid Grid.Column="2" Grid.Row="0">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition/>
                                    <ColumnDefinition Width="45"/>
                                    <ColumnDefinition Width="45"/>
                                    <ColumnDefinition Width="45"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition/>
                                </Grid.RowDefinitions>
                                <Button Name="MinimizeButton" Grid.Column="1" Grid.Row="0" BorderThickness="0" Background="Red" Foreground="White" extensions:ButtonExtension.HighlightedBackground="Red" extensions:ButtonExtension.HighlightedForeground="White" Template="{DynamicResource MinimizeButtonTemplate}"/>
                            </Grid>
                        </Grid>
                        <AdornerDecorator Grid.Row="1">
                            <ContentPresenter Margin="{TemplateBinding Padding}"
                                          Content="{TemplateBinding Content}"/>
                        </AdornerDecorator>
                    </Grid>
                </Border>
                <ControlTemplate.Triggers>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Template кнопки:

<ControlTemplate x:Key="MinimizeButtonTemplate" TargetType="{x:Type Button}">
    <Border Name="Border"
        Background="{TemplateBinding Background}"
        BorderBrush="{TemplateBinding BorderBrush}"
        BorderThickness="{TemplateBinding BorderThickness}">
        <Line Name="Line" RenderOptions.EdgeMode="Aliased" HorizontalAlignment="Center" VerticalAlignment="Center" Stroke="{TemplateBinding Foreground}" StrokeThickness="1" X1="0" Y1="0" X2="10" Y2="0"/>
    </Border>
    <ControlTemplate.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" TargetName="Border" Value="{Binding (extensions:ButtonExtension.HighlightedBackground), RelativeSource={RelativeSource AncestorType={x:Type Button}}}"/>
            <Setter Property="Foreground" Value="{Binding (extensions:ButtonExtension.HighlightedForeground), RelativeSource={RelativeSource AncestorType={x:Type Button}}}"/>
            <Setter Property="Stroke" TargetName="Line" Value="{Binding (extensions:ButtonExtension.HighlightedForeground), RelativeSource={RelativeSource AncestorType={x:Type Button}}}"/>
        </Trigger>
        <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Background" Value="LightGray"/>
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>
READ ALSO
Рекурсия с шагом N+1 и N+3

Рекурсия с шагом N+1 и N+3

Требуется с помощью рекурсии определить можно ли из массива 1N, в котором лежать целые неотрицательные числа, получить сумму K, если можно...

163
Чтение данных из COM порта C# .Net

Чтение данных из COM порта C# .Net

Написал программу на микроконтроллере которая в порт посылает данные(4 константных значения типа int) через функцию sprintf, sprintf переводит интовое...

148
Как перевести текст HTML-страницы?

Как перевести текст HTML-страницы?

Приложение выполняет парсинг HTML страницыHTML страница имеет текст, картинки, таблицы и другое содержание

163
symfony 3 вывод в форму ChoiceType (select) из базы данных

symfony 3 вывод в форму ChoiceType (select) из базы данных

Помогите, пожалуйстаДелаю скрипт, в котором можно добавлять пользователя, каждый пользователь имеет свою должность (таблица в базе positions)

170