将相同样式应用于符合特定条件wpf的多类型对象

将相同样式应用于符合特定条件wpf的多类型对象,wpf,xaml,binding,resources,Wpf,Xaml,Binding,Resources,在我的应用程序中,我有几个具有相同背景颜色、角半径、边框颜色和边框厚度的菜单。我将这些属性保存为我的应用程序资源中的资源,这样,例如,如果我更改背景颜色,它将更改我所有菜单的颜色。我想知道是否有可能创建一个样式,这样我就可以将该样式绑定到菜单,而不是绑定这么多属性。此外,我只想将该样式应用于某些边框,因为我的应用程序中并非所有边框都是菜单。我怎么能这么做 例如,我希望做如下事情: 以下是我在应用程序资源中的风格: <Style x:Key="someStyle">

在我的应用程序中,我有几个具有相同背景颜色、角半径、边框颜色和边框厚度的菜单。我将这些属性保存为我的应用程序资源中的资源,这样,例如,如果我更改背景颜色,它将更改我所有菜单的颜色。我想知道是否有可能创建一个样式,这样我就可以将该样式绑定到菜单,而不是绑定这么多属性。此外,我只想将该样式应用于某些边框,因为我的应用程序中并非所有边框都是菜单。我怎么能这么做

例如,我希望做如下事情:

以下是我在应用程序资源中的风格:

     <Style x:Key="someStyle">
        <Style.Resources>
            <Color x:Key="MenuBackground2">#BB252525</Color>
            <CornerRadius x:Key="CornerRadiusMenu2">7</CornerRadius>
            <Border x:Key="MainBorder2" >
                <Border.Background>
                    <SolidColorBrush Color="{DynamicResource MenuBackground}"/>
                </Border.Background>
            </Border>
        </Style.Resources>                       
    </Style>

#BB252525
7.
然后在MainWindow.xaml位置:

<Border Margin="498,90,25,0" Name="brdMain" Style="{DynamicResource someStyle}"></Border>   


但是当我这样做的时候,brdMain似乎并没有绑定到那个样式…

您的
样式定义不正确。它应该是
设置器的集合
。例如,您给定的样式应为:

 <Style x:Key="someStyle">
    <Setter Property="Background" Value="#BB252525"/>
    <Setter Property="CornerRadius" Value="7"/>
    etc ...                      
</Style>
样式
只不过是一群属性设置器。只能设置应用了
样式的对象的属性。


   <Style x:Key="someStyle" TargetType="{x:Type Border}">
        <Setter Property="Control.Background" Value="#BB252525"/>
        <Setter Property="Control.BorderThickness" Value=".5"/>
        <Setter Property="Control.BorderBrush" Value="White"/>
        <Setter Property="CornerRadius" Value="7"/>                                     
    </Style>

CornerRadius不起作用。我还需要指定边界厚度。谢谢。