142

#ffaacc などの Hex 値から SolidColorBrush を作成したい。これどうやってするの?

MSDNで、私は得ました:

SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255);

だから私は書いた(私のメソッドが色を受け取ると考えて#ffaacc):

Color.FromRgb(
  Convert.ToInt32(color.Substring(1, 2), 16), 
  Convert.ToInt32(color.Substring(3, 2), 16), 
  Convert.ToInt32(color.Substring(5, 2), 16));

しかし、これは次のようにエラーを出しました

The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments

また、次のような 3 つのエラーがあります。Cannot convert int to byte.

しかし、MSDN の例はどのように機能するのでしょうか?

4

6 に答える 6

365

代わりにこれを試してください:

(SolidColorBrush)new BrushConverter().ConvertFrom("#ffaacc");
于 2012-05-22T21:09:01.587 に答える
22

私は使用しています:

new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ffaacc"));
于 2016-05-24T19:35:27.100 に答える
17

.NETを使用して16進数のカラーコードから色を取得するには?

これがあなたが求めているものだと思います。それがあなたの質問に答えてくれることを願っています。

コードを機能させるには、Convert.ToInt の代わりに Convert.ToByte を使用します...

string colour = "#ffaacc";

Color.FromRgb(
Convert.ToByte(colour.Substring(1,2),16),
Convert.ToByte(colour.Substring(3,2),16),
Convert.ToByte(colour.Substring(5,2),16));
于 2012-04-08T11:50:07.383 に答える
10
using System.Windows.Media;

byte R = Convert.ToByte(color.Substring(1, 2), 16);
byte G = Convert.ToByte(color.Substring(3, 2), 16);
byte B = Convert.ToByte(color.Substring(5, 2), 16);
SolidColorBrush scb = new SolidColorBrush(Color.FromRgb(R, G, B));
//applying the brush to the background of the existing Button btn:
btn.Background = scb;
于 2012-04-08T19:28:56.780 に答える