2016-06-30 1 views
0

16 진수 값을 사용하여 Blend 또는 Photoshop에서 수행 한 것처럼 사용자가 색상을 설정할 수 있도록하고 싶습니다. 내 XAML UI에 어떻게 저장하고 사용할 수 있습니까?내 UWP 응용 프로그램에서 16 진수 값으로 색상 사용

+0

는 당신이 정확하게 수행 할 작업 : 예를 들어? 사용자가 TextBox에 16 진수 값 (#FFFFFF)을 쓰고 그 색으로 무언가의 색을 변경하고 싶습니까? –

답변

0

표준 Windows.UI.Color 클래스를 사용하여 색상을 선택하는 가장 쉬운 방법 일 것입니다. 그러나이 같은 간단, 16 진수 값으로 변환 :

Windows.UI.Color c = Windows.UI.Colors.Red; 
string hexString = string.Format("#{0:X2}{1:X2}{2:X2}", c.R, c.G, c.B); 

이 XAML에서 HEX 값을 사용하려면 변환기를 사용해야합니다.

사용 변환기에
public class HexColorConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, string language) 
    { 
        if (!(value is Windows.UI.Color)) return null; 

        Windows.UI.Color c = (Windows.UI.Color)value; 
        string hex = string.Format("#{0:X2}{1:X2}{2:X2}", c.R, c.G, c.B); 
        return hex; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, string language) 
    { 
        if (!(value is string)) return null; 

        Windows.UI.Color c = new Windows.UI.Color(); 
        string t = (string)value; 

        try 
        { 
            c.A = (byte)255; 
            c.R = (byte)int.Parse(t.Substring(1, 2), System.Globalization.NumberStyles.HexNumber); 
            c.G = (byte)int.Parse(t.Substring(3, 2), System.Globalization.NumberStyles.HexNumber); 
            c.B = (byte)int.Parse(t.Substring(5, 2), System.Globalization.NumberStyles.HexNumber); 
        } 
        catch 
        { 
            throw (new ArgumentException("Invalid color. Must be something like #AABBCC")); 
        } 

        return c; 
    } 
} 

더, see MSDN

관련 문제