2013-07-13 4 views
2

System.Media.Brush를 System.Drawing.Brush로 변환하지만 색상을 변경 한 후입니다. 변환기에 "Token is not valid"오류가 발생합니다. C# WPF 토큰이 BrushConverter에서 유효하지 않습니다.

private Brush DrawingColorToBrush(System.Drawing.Color color) 
    { 
     Brush ret; 

     BrushConverter m; 


     m = new BrushConverter(); 
     ret = (Brush)m.ConvertFromString(color.ToArgb().ToString("X8")); 

     return ret; 
    } 

은 색상이 핵심 인 System.Windows.Forms.ColorDialog enter image description here

답변

3
이 귀하의 방법을 변경하는 경우 귀하의 코드가 작동합니다

...

private Brush DrawingColorToBrush(System.Drawing.Color color) 
    { 
     Brush ret = null; 
     BrushConverter m = new BrushConverter(); 
     string s = "#" + color.ToArgb().ToString("X8"); 
     if (m.CanConvertFrom(typeof (string))) 
     { 
      ret = (Brush) m.ConvertFromString(s); 
     } 
     return ret; 
    } 

에서오고있다 문자열 앞에 '#'문자를 추가하십시오.

+1

내가 올바른 형식을 이미 알고 있었을 때 그것을 놓친 것은 어리석은 짓이었습니다. 감사! – John

관련 문제