1

親要素の型に条件を付けて要素にスタイルを適用する正しい方法は何ですか?つまり、特定の他の要素の子である場合のみ?

私の場合、正確なボタンの幅と高さを適用したいのですが、それらのボタンがスタックパネルの直接の子である場合に限ります。さらに、これらのボタン (グリフ) 内の画像に 2 番目のスタイルを適用する必要があります。

  • スタックパネルのボタンにのみ影響し、グリッドに直接配置されたボタンには影響しないボタン スタイルを定義するにはどうすればよいですか?
  • stackpanels のみ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 に答える