繁体   English   中英

如何从RGB颜色创建WPF图像?

[英]How to create a WPF Image from an RGB Color?

我的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

我自己没有使用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)。

但是绝对建议尝试一下,看看它是否可以用于数千种物品。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM