16 진수 색상 값에서 SolidColorBrush 만들기


129

#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 예제는 어떻게 작동합니까?


6
너무 멍청해서 기본 #FFFFFF 형식을 허용하지 않습니다.
MrFox

1
UWP 이러한 작업 없음
kayleeFrye_onDeck

답변:


326

대신 이것을 시도하십시오.

(SolidColorBrush)(new BrushConverter().ConvertFrom("#ffaacc"));


15

나는 사용하고있다 :

new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ffaacc"));

9
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;

4

매번 변환의 고통을 처리하고 싶지 않다면 단순히 확장 메서드를 생성하십시오.

public static class Extensions
{
    public static SolidColorBrush ToBrush(this string HexColorString)
    {
        return (SolidColorBrush)(new BrushConverter().ConvertFrom(HexColorString));
    }    
}

그런 다음 다음과 같이 사용하십시오. BackColor = "#FFADD8E6".ToBrush()

또는 동일한 작업을 수행하는 방법을 제공 할 수 있습니다.

public SolidColorBrush BrushFromHex(string hexColorString)
{
    return (SolidColorBrush)(new BrushConverter().ConvertFrom(hexColorString));
}

BackColor = BrushFromHex("#FFADD8E6");

0

vb.net 버전

Me.Background = CType(New BrushConverter().ConvertFrom("#ffaacc"), SolidColorBrush)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.