开发者

Path Fill property binding erratic behavior?

I got some kind of weird behavior while trying to use all the power of MVC... :) I was to trying to bound a simple Path Fill property to some value and cannot succeed.

As a small exemple is worth...

Here's how to reproduce simply:

<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>

An other issue, It works with this layout but not with a similar one (removing Fill from declaration):

<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>

Could someone 开发者_StackOverflow社区enlighten me on the cause ?


Do not set any Fill on the path itself if you want to change it in a style as that will override your style due to dependency property value precedence.

Move the initial Fill value into a Setter of the style.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜