如何从RGB颜色创建WPF图像
本文关键字:创建 WPF 图像 颜色 RGB | 更新日期: 2023-09-27 17:52:34
我有一些颜色的Layer
对象显示在TreeView
。现在我使用如下代码:
<GridViewColumn Width="300">
<GridViewColumnHeader Content="Layers" />
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel MouseLeftButtonDown="Layers_MouseLeftButtonDown" Orientation="Horizontal">
<Image Width="15"
Height="15"
Source="{Binding ImageFromColor}" />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
原始颜色值将从Layer
本身访问(绑定),例如:
layer.Color
类型的System.Drawing.Color
。但是我可以把它的类型改成其他的,如果这样更方便的话。
从性能和优雅的角度来看,最好的方法是什么?
我将有几千个TreeView
项目,如果可以的话。
我自己没有尝试过TreeView(只使用ListBox),但也许这值得一试:
<DataTemplate>
<!-- your additional container -->
<Canvas Width="15" Height="15">
<Canvas.Background>
<SolidColorBrush Color="{Binding Path=ColorProperty}" />
</Canvas.Background>
</Canvas>
<!-- end of container -->
</DataTemplate>
这种方法使用直接绑定到color属性,因此不需要创建图像(例如通过Converter)。
但是绝对建议您尝试一下,看看它是否适用于数千个条目。