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

| 在WPF Prism v4中,我有一个ToolBar充当区域。在该区域中,我注入UserControls,其中包含工具栏的按钮和分隔符。 问题在于,因为这些按钮现在位于UserControl中,所以工具栏样式不再适用。 我可以通过定义样式来解决此问题:
<Separator Style=\"{StaticResource {x:Static ToolBar.SeparatorStyleKey}}\"/>
<Button Style=\"{StaticResource {x:Static ToolBar.ButtonStyleKey}}\"/>
但是我想避免这种情况,因为我有数百个按钮。所以我的问题是,是否可以从资源字典中为工具栏下的所有按钮定义样式? 谢谢!     
已邀请:
您可以使用类似:
<Style TargetType=\"Separator\" BasedOn=\"{StaticResource {x:Static ToolBar.SeparatorStyleKey}}\" />
<Style TargetType=\"Button\" BasedOn=\"{StaticResource {x:Static ToolBar.ButtonStyleKey}}\" />
如果将其放在ToolBar资源中,则它将应用于其中的任何按钮。     
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>
我希望这是ToolBar的默认行为,但是我发现它需要显式定义。 希望能帮助到你。 :)     
将基本样式放入ToolBar资源中:
<ToolBar>
    <ToolBar.Resources>
        <Style TargetType=\"{x:Type Button}\"
               BasedOn=\"{StaticResource {x:Static ToolBar.ButtonStyleKey}}\"/>
        <Style TargetType=\"{x:Type Separator}\"
               BasedOn=\"{StaticResource {x:Static ToolBar.SeparatorStyleKey}}\"/>
    </ToolBar.Resources>
    ...
</ToolBar>
    

要回复问题请先登录注册