program story

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

inputbox 2020. 8. 3. 08:21
반응형

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


#ffaacc와 같은 16 진수 값에서 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 예제는 어떻게 작동합니까?


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

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

.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));

나는 사용하고있다 :

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

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;

매번 변환의 고통을 처리하고 싶지 않으면 확장 방법을 만드십시오.

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

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


vb.net 버전

Me.Background = CType(New BrushConverter().ConvertFrom("#ffaacc"), SolidColorBrush)

참고 URL : https://stackoverflow.com/questions/10062376/creating-solidcolorbrush-from-hex-color-value

반응형