2013-01-22 79 views
0

我遇到了WPF樣式的問題。WPF樣式僅適用於使用dataTrigger的根元素

在根用戶控件我有這樣定義的資源:

<UserControl.Resources> 
    <Style TargetType="{x:Type MyControl}"> 
     <Setter Property="MyControl.AAA" Value="Value1" /> 
    </Style> 
</UserControl.Resources> 

這一切正常,它會影響整個可視化樹層次結構中的所有元素MyControl。

如果我試圖更改使用DataTrigger設置器,像這樣:

<UserControl.Resources> 
    <Style TargetType="{x:Type MyControl}"> 
     <Style.Triggers>     
      <DataTrigger Binding="{Binding Path=SelectedAAAValue}" Value="Value1"> 
       <Setter Property="MyControl.AAA" Value="Value1" /> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Path=SelectedAAAValue}" Value="Value2"> 
       <Setter Property="MyControl.AAA" Value="Value2"/> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Resources> 

樣式僅應用於特定類型MyControl的根元素。

任何人都可以解釋爲什麼會發生這種情況嗎?我如何通過DataTriggers將樣式應用於所有特定元素?

非常感謝您的幫助。 Ondra

回答

0

我不知道爲什麼發生這種情況,但也許你可以找到更多的信息here。這當然只有在你設置MyControl.AAA的屬性是一個DependecyProperty的情況下。

圖片下的下一段應該說明更多。

+0

嗨克里斯蒂安,非常感謝,你排到我正確的方向上,必須的DependencyProperty被定義爲繼承,這樣AAAProperty = DependencyProperty.Register( 「AAA」, typeof運算(MyControl), typeof運算(ProjectiveControl) , 新的FrameworkPropertyMetadata( some_default_value,FrameworkPropertyMetadataOptions.Inherits)); –

相關問題