如何从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项目,如果可以的话。

如何从RGB颜色创建WPF图像

我自己没有尝试过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)。

但是绝对建议您尝试一下,看看它是否适用于数千个条目。