如何从 RGB 颜色创建 WPF 图像?
我的 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
项目,它们会产生影响。
I have some colors for my Layer
objects that are shown in a TreeView
. Right now I use something like this:
<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>
The original color values are gonna be accessed (binded) from the Layer
itself, so like:
layer.Color
of type System.Drawing.Color
. But I can change the type to be something else if it would make things easier.
What's the best way to do this in terms of performance and elegance?
I will have a couple thousand TreeView
items it that makes a difference.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我自己没有尝试使用 TreeView(仅使用 ListBox),但也许这值得一试:
这种方法使用直接绑定到颜色属性,因此不需要创建图像(例如通过转换器)。
但绝对建议尝试一下,看看它是否适用于数千个项目。
I did not try it myself with a TreeView (only with a ListBox), but maybe this is worth a try:
This approach uses a direct binding to the color property, so no images need to be created (e.g. by a Converter).
But it is definitely recommended to try it out to see if it works with thousands of items.