Sergey Alexandrovich Kryukov
Основная идея заключается в следующем: заполните поле со списком всеми необходимыми кистями. Для содержимого элемента списка используйте элементы System.Windows.Media.Brushes
, видеть http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox.aspx[^]. В обработчике события ComboBox.SelectionChanged
, type-приведение содержимого элемента поля со списком к SolidColorBrush
и присвоить его собственности Fill
из Ellipse
.
Для элемента поля со списком вы можете использовать любое сложное содержимое; важно только, чтобы у вас был объект данного типа SolidColorBrush
или Brush
на каком-то уровне гнездования. Таким образом, вы можете показать цвет и, например, его имя в элементе списка со списком.
Вот очень простой пример:
<ComboBox>
<ComboBoxItem>
<TextBlock Background="Red">Red</TextBlock>
</ComboBoxItem>
<ComboBoxItem>
<TextBlock Background="Yellow">Yellow</TextBlock>
</ComboBoxItem>
<ComboBoxItem>
<TextBlock Background="AliceBlue">Alice Blue</TextBlock>
</ComboBoxItem>
</ComboBox>
Это не идеально, просто дает вам представление о том, что вы можете иметь для элемента управления (комбинированного поля), используемого для выбора цвета.
Вся хитрость заключается в дизайне
ComboBoxItem
содержание и его использование. Итак, прочтите это:
http://msdn.microsoft.com/en-us/library/bb613548.aspx[
^].
Еще один другой уровень WPF" custom drawing " - это
моделирование и
шаблоны. Читать
http://msdn.microsoft.com/en-us/library/ms745683.aspx[
^].
—СА