我有一个树视图,其中的项目可以有不同的颜色。喜欢这个
正如您所看到的,背景比边框大。如何将背景颜色保留在边框内?
这是相关代码:
<DataTemplate DataType="{x:Type models:MyClass}">
<Border BorderBrush="Black"
HorizontalAlignment="Stretch"
BorderThickness="1"
Margin="2" >
<TextBlock Text="{Binding Path=Name}"
Foreground="Black"
Width="{Binding Path=ActualWidth, ElementName=MyTreeView, Mode=OneWay}"
Background="{Binding Background}"
Margin="3" />
</Border>
</DataTemplate>
答案 0 :(得分:0)
要设置背景,我在TextBlock中使用了一个属性
Background="{Binding Background}"
在我的ViewModel中,我设置TreeViewItem
这样的背景
var item = new TreeViewItem { Header = myClassInstance };
item.Background = Brushes.Blue;
导致背景颜色重叠。
我将其更改为将背景设置为TreeViewItem
,而不是设置为项目中的类实例。所以我将上面两行改为
var item = new TreeViewItem { Header = myClassInstance };
myClassInstance.Background = Brushes.Blue;
它按预期工作。