2011-08-10 38 views
1

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> 

他の問題、それは(宣言から記入取り除く)同様のもので、このレイアウトで動作しますが、ない:

小さなexempleは価値があると

...
は、ここで簡単に再現する方法は次のとおりです。

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

誰かが原因で私を啓発できますか?

答えて

3

Fillをパスに設定しないと、dependency property value precedenceのスタイルが上書きされます。

最初のFillの値をスタイルのSetterに移動します。

+0

実際、私は打ち込みのために仕事を築いていませんでした。 ありがとう! – Joseph

+0

うれしかったよ。 (左のチェックマークをクリックすると、[私の答えを受け入れることができます](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

+0

感謝しています:) – Joseph

関連する問題