Как создать изображение WPF из цвета RGB? - PullRequest
2 голосов
/ 22 апреля 2011

У меня есть несколько цветов для моих 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 пунктов это имеет значение.

1 Ответ

4 голосов
/ 22 апреля 2011

Я не пробовал сам с 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, поэтому нет изображенийнеобходимо создать (например, с помощью конвертера).

Но определенно рекомендуется попробовать его, чтобы увидеть, работает ли он с тысячами элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...