2012-11-26 42 views
0

在父元素的類型i上使用條件對元素應用樣式的正確方法是什麼?即只有當他們是某些其他元素的子女時可以基於它具有的父元素將樣式應用於XAML元素嗎?

在我的情況下,我想應用一些確切的按鈕寬度和高度,但只有當這些按鈕是一個堆疊面板的直接孩子。此外,第二種風格應該應用於這些按鈕(字形)內的圖像。

  • 如何定義隻影響堆疊面板上按鈕的按鈕樣式,但不是直接放置在網格上的按鈕樣式?
  • 是否可以添加附加條件,如只有與orientation="horizontal"堆棧面板?
  • 我可以在[水平]堆疊面板上的按鈕上定義「樹狀況」,如只有圖像

由於我的應用程序中所有按鈕的90%都是堆疊面板上的按鈕,所以我已將樣式應用於所有按鈕和圖像,並在必要時將其覆蓋。但這不是最好的解決方案,是嗎?

最好,解決方案將處理樣式定義中的所有條件,所以我不必將該樣式顯式分配給每個我的堆疊面板。

回答

0
<StackPanel> 
    <StackPanel.Resources> 
     <Style x:Key="Rectangle1" TargetType="Rectangle"> 
     <Setter Property="Stroke" Value="Black" /> 
     <Setter Property="Fill" Value="White" />            
     </Style>          
    </StackPanel.Resources> 
    <UniformGrid Columns="10"> 
     <UniformGrid.Resources> 
     <Style TargetType="Rectangle" BasedOn="{StaticResource Rectangle1}"> 
      <Setter Property="Fill" Value="Red" />           
    </Style>          
     </UniformGrid.Resources> 

    </UniformGrid> 
</StackPanel> 
+0

如果您可以編輯您的帖子以包含一些簡要說明,將會有所幫助。 –

+0

我很抱歉,但我不明白這與我的問題有何關係。我知道我可以覆蓋基礎樣式的setter。但我的問題是詢問我是否可以添加條件給我的一個且唯一的樣式定義,需要某些父元素類型讓整個樣式完全應用,就像我在一個地方有我的樣式定義一樣,它是適用於某些元素的兒童,但不適用於所有其他元素的兒童。 – LWChris

相關問題