2

true に設定OverridesDefaultStyleすると、デフォルトのスタイルは使用されません。BasedOn同時に使った結果は?

<Style x:Key="MenuButton" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
           TargetType="{x:Type c:MenuButton}">
        <Setter Property="OverridesDefaultStyle" Value="True" />
</Style>

2 つの指示は互いに矛盾していますか? 無視されるのは
、基礎となるデフォルトのスタイルですか? この特定の例では、が true か false かに違いはありません。ToolBar.ButtonStyleKey
OverridesDefaultStyle

4

1 に答える 1

3

これらのプロパティの両方を使用する場合は、MenuButtonオブジェクトからすべてStyle情報を取得しMenuButton Style、残りのプロパティはToolBar.ButtonStyleKey Style. 少なくとも、私は実際にその配置を使用する必要がなかったので、理論的にはそうです。

特に、OverridesDefaultStyleプロパティをに設定Trueすると、スタイル付き要素がテーマ スタイル プロパティを使用せず、代わりにローカル アプリケーション スタイルからすべてのStyle値を取得することが想定されます。ただし、場合によっては、このプロパティを に設定しても違いがないように見える場合もあります。True

一方、このプロパティ設定機能する場合、デフォルトが削除されるため、デフォルトのテーマ スタイルと同じ機能ControlTemplateをサポートするには、同じ構造を複製するコントロール テンプレートを使用して別のスタイルを提供する必要があります。

斜体のテキストは、MSDN のFrameworkElement.OverridesDefaultStyleプロパティページから取得されます

于 2013-10-15T15:47:18.600 に答える