2014-01-30 5 views
1

Как установить фоновые и передние свойства текстовых блоков WPF с программным обеспечением System.Drawing.Color? Решение без конвертера было бы неплохо.Использование System.Drawing.Color для установки фона и переднего плана в WPF

System.Drawing.Color BackColor = System.Drawing.Color.Black; 
System.Drawing.Color ForeColor = System.Drawing.Color.White; 

TextBlock txt = new TextBlock(); 
txt.Background=BackColor ; 
txt.ForeGround=ForeColor ; 

PS: Цвет, который я бы assigining бы быть от окна формы приложение и, следовательно, было бы System.Drawing.Color не в System.Windows.Media.Color в соответствии с требованиями WPF ,

ответ

1

Вы можете сделать это следующим образом:

System.Drawing.Color BackColor = System.Drawing.Color.Black; 

txt.Background = new SolidColorBrush(
    Color.FromArgb(BackColor.A, BackColor.R, BackColor.G, BackColor.B)); 
3

Вы должны использовать Brush, а не Color.

Есть несколько предустановленных кистей, так что вы можете сделать это:

txt.Background = Brushes.Black; 
txt.Foreground = Brushes.White; 

MSDN Page

Однако, как вы читаете цвет из Windows Form App, то вам придется создать свой Brush из цвета компонентов:

txt.Background = new SolidColorBrush(Color.FromArgb(BackColor.A, BackColor.R, BackColor.G, BackColor.B)); 
+0

О да. Я думал, что достаточно указать System.Drawing.Color, а не System.Windows.Media.Color. В любом случае извините за путаницу. Подтвердил ваш ответ. Невозможно отметить два ответа в ответе. Вы ответили на него. – user2330678

Смежные вопросы