2012-02-14 31 views
18

Cách tôi có thể truyềntên màu to SolidColorBrush? Ý tôi là từ "Vàng".Truyền Tên Màu tới SolidColorBrush

SolidColorBrush scb = ??? ; // "Yellow" 

Cảm ơn bạn!

+2

Tôi chỉ đơn giản là [_construct_] (http://msdn.microsoft.com/en-us/library/ms558629.aspx) một 'SolidColorBrush' từ một' Màu'. –

Trả lời

29

Để nhận được màu sắc, sử dụng:

Color col=(Color)ColorConverter.ConvertFromString("Red"); 

Sau đó tạo bàn chải của bạn:

Brush brush=new SolidColorBrush(col); 

hoặc nếu bạn có thể sử dụng màu sắc-enum

Brush brush=new SolidColorBrush(Colors.Red); 
+0

Điều này là hoàn hảo trong WPF, nhưng không làm việc trong Windows Phone 8, làm thế nào để làm điều này trong WP8 –

+0

Có thể điều này sẽ giúp: http://stackoverflow.com/questions/25827964/how-to-convert-a-string-into- a-màu-cho-windows-điện thoại-c-sắc nét – HCL

3
// Yellow is green + red 
SolidColorBrush yellowBrush = new SolidColorBrush(System.Windows.Media.Color.FromRgb(255, 255, 0)); 
7

Bạn không thể truyền cái khác. Chúng đơn giản là các khái niệm khác nhau. Một bàn chải là bàn chải và màu sắc là, tốt, một màu sắc. Chỉ vì một bàn chải "sơn" trong một màu cụ thể, không có nghĩa là bạn có thể trao đổi với nhau.

Bạn tuy nhiên có thể tạo ra một SolidColorBrush với một màu cụ thể, ví dụ:

var brush = new SolidColorBrush(Color.Yellow); 
12

Nếu bạn đã biết tên của màu sắc mà bạn có thể nhận được bàn chải trực tiếp từ Brushes:

SolidColorBrush scb = Brushes.Yellow; //scb seems a bit redundant at this point... 

Trong mã, bạn thường nên sử dụng không sử dụng trình chuyển đổi trừ khi bạn có chuỗi có giá trị mà bạn không biết.

Các vấn đề liên quan