从样式设置模板背景

时间:2019-05-07 03:18:54

标签: c# wpf mvvm styles

我有这样的风格

<Style x:Key="LeavesStyle" TargetType="{x:Type dxe:ListBoxEditItem}">
            <Setter Property="Background" Value="Blue" />//Not Working
            <Setter Property="Template" Value="{StaticResource ItemTemplate}">
            </Setter>
        </Style>

和我的Template

<ControlTemplate x:Key="ItemTemplate" TargetType="{x:Type dxe:ListBoxEditItem}">
            <Border x:Name="rootBorder" BorderThickness="0,0,0,1" BorderBrush="{dxi:ThemeResource ThemeKey={dxgt:GridRowThemeKey ResourceKey=GridDataRowDelimiterBrush}}">

如何从rootBorder的样式访问Background?设置rootBorders Background

我知道我可以这样做  <Setter TargetName="rootBorder" Property="Background" Value="Orange" />

在我的模板中,我想从样式上做到这一点。

2 个答案:

答案 0 :(得分:1)

Background属性不会自动应用于您的边框。您需要将边框背景链接到控件的background属性。您可以使用TemplateBinding

 <ControlTemplate>
     <Border Background="{TemplateBinding Background}" />
 </ControlTemplate>

更改样式的控件的Background属性现在将更改项目的背景。

答案 1 :(得分:0)

一种可能性是覆盖样式的控件模板并在其中添加边框

您可以在此处看到类似的解决方案:WPF ListView Style Borders