将相同样式应用于符合特定条件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不起作用。我还需要指定边界厚度。谢谢。