XAML:将样式应用于嵌套控件

Tom*_*sen 3 wpf xaml styles

在WPF,Prism v4中,我有一个ToolBar作为一个区域.在这个区域中,我注入UserControls,其中包含工具栏的按钮和分隔符.问题是因为按钮现在位于UserControl中,所以工具栏样式不再适用.

可以通过定义样式解决这个问题:

<Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}"/>
<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"/>
Run Code Online (Sandbox Code Playgroud)

但我想避免这种情况,因为我有数百个按钮.所以我的问题是我是否可以从资源字典中为ToolBar下的所有按钮定义样式?

谢谢!

Ste*_*der 6

CodeNaked和Marat Khasanov提到的相同技术也可以在默认的ToolBar样式中使用,因此您不必在本地重置它们.

    <Style TargetType="{x:Type ToolBar}">
        <Style.Resources>
            <Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" />
            <Style TargetType="{x:Type Separator}" BasedOn="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" />
        </Style.Resources>
        <!-- etc... -->
    </Style>
Run Code Online (Sandbox Code Playgroud)

我希望这是ToolBar的默认行为,但我发现它需要显式定义.

希望能帮助到你.:)