Свойство Path Fill связывает ошибочное поведение? - PullRequest
1 голос
/ 11 августа 2011

Я получил какое-то странное поведение, пытаясь использовать всю мощь MVC ... :) Я пытался привязать простое свойство Path Fill к какому-либо значению и не может быть успешным.

Как маленький пример стоит ...
Вот как просто воспроизвести:

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Path Name="p" Data="M 0,0 h 30 v 30 h -30 v -30" Fill="Beige">
        <Path.Style>
            <Style TargetType="{x:Type Path}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsChecked, ElementName=ch}" Value="True">
                        <Setter Property="Path.Fill" Value="Red"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Path.Style>
    </Path>

    <CheckBox Name="ch" Margin="35,12,-35,-12" />
</Grid>
</Window>

Другая проблема, она работает с этим макетом, но не с аналогичным (удаление Fill из декларации):

<Path Name="p" Data="M 0,0 h 30 v 30 h -30 v -30">
    <Path.Style>
        <Style TargetType="{x:Type Path}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsChecked, ElementName=ch}" Value="True">
                        <Setter Property="Path.Fill" Value="Red"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding IsChecked, ElementName=ch}" Value="False">
                        <Setter Property="Path.Fill" Value="Blue"/>
                    </DataTrigger>

                </Style.Triggers>
            </Style>
        </Path.Style>
    </Path>

Может ли кто-нибудь объяснить мне причину?

1 Ответ

3 голосов
/ 11 августа 2011

Не устанавливайте Fill на самом пути, если вы хотите изменить его в стиле, поскольку он будет переопределять ваш стиль из-за приоритета значения свойства зависимости .

Переместитьначальное значение Fill в Setter стиля.

...