首页 > 解决方案 > WPF TreeView - 设置基于文本的符号的颜色

问题描述

我在树视图中设置一些“前缀”文本背景和前景色时遇到问题...以下代码设置了正确的“符号”但不更改颜色...

    <DataTemplate DataType="{x:Type models:ChainItem}">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=Symbol}" FontFamily="Courier New" FontSize="10" Background="{Binding Path=SymbolBackground}" Foreground="{Binding Path=SymbolBrush}"/>
            <TextBlock Grid.Column="1" Text="{Binding Path=Name}" FontSize="16"/>
        </StackPanel>
    </DataTemplate>

有趣的是,如果选择了具有上述数据模板的项目,“符号”部分为黑色,其余部分为白色。如果我删除了前景和背景绑定,那么所有的选择都是白色的。如果我手动设置颜色而不是使用绑定,我会得到相同的效果,所以我相当肯定这不是我的绑定问题,而是我的方法。

我知道我可以通过使用图像来解决这个问题,但是我被要求使用可以更改的文本(符号实际上是一个 3 个字符的字符串)。我正在考虑在位图上绘制文本并设置颜色,但我认为有一种更简单的方法。

标签: c#wpfcolorstreeview

解决方案


答案是我使用了错误的命名空间......

我正在使用 System.Drawing,我需要 System.Windows.Media


推荐阅读