1

对具有父元素类型条件的元素应用样式的正确方法是什么,即仅当它们是某些其他元素的子元素时?

就我而言,我想应用一些精确的按钮宽度和高度,但前提是这些按钮是堆栈面板的直接子级。此外,应将第二种样式应用于这些按钮(字形)中的图像。

  • 如何定义仅影响堆栈面板上的按钮而不影响直接放置在网格上的按钮的按钮样式?
  • 是否可以添加其他条件,例如仅带有 的堆栈面板orientation="horizontal"
  • 我可以定义“树条件”,例如[水平] 堆栈面板上的按钮上的图像吗?

由于我的应用程序中 90% 的按钮都是堆栈面板上的按钮,因此到目前为止,我已将样式应用于所有按钮和图像,并在必要时覆盖它。但这不是最好的解决方案,不是吗?

最好,该解决方案将处理样式定义中的所有条件,因此我不必将该样式显式分配给我的每个堆栈面板。

4

1 回答 1

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>
于 2013-01-25T20:03:03.013 回答