convertir de couleur en brosse

Comment convertir une Color en un Brush en C #?

C’est pour la Color au Brush ….

vous ne pouvez pas le convertir, vous devez créer un nouveau pinceau ….

 SolidColorBrush brush = new SolidColorBrush( myColor ); 

maintenant, si vous en avez besoin dans XAML, vous POUVEZ faire un convertisseur de valeur personnalisé et l’utiliser dans une reliure

 Brush brush = new SolidColorBrush(color); 

Dans l’autre sens:

 if (brush is SolidColorBrush) { Color color = (brush as SolidColorBrush).Color; } 

Ou quelque chose comme ça.

Tous les pinceaux sont des couleurs, mais vous pouvez transformer toutes les couleurs en un pinceau (SolidColor).

 SolidColorBrush brush = new SolidColorBrush( Color.FromArgb(255,255,139,0) ) 

vous pouvez utiliser ceci:

 new SolidBrush(color) 

où la couleur est quelque chose comme ça:

 Color.Red 

ou

 Color.FromArgb(36,97,121)) 

ou …

Si vous travaillez avec une application qui combine Windows Forms et WPF, vous pourriez avoir à compliquer la conversion d’un System.Drawing.Color en System.Windows.Media.Color. Je ne sais pas s’il existe un moyen plus simple de le faire, mais je l’ai fait de cette façon:

 System.Drawing.Color MyColor = System.Drawing.Color.Red; System.Windows.Media.Color = ConvertColorType(MyColor); System.Windows.Media.Color ConvertColorType(System.Drawing.Color color) { byte AVal = color.A; byte RVal = color.R; byte GVal = color.G; byte BVal = color.B; return System.Media.Color.FromArgb(AVal, RVal, GVal, BVal); } 

Ensuite, vous pouvez utiliser l’une des techniques mentionnées précédemment pour convertir en un pinceau.

J’ai eu le même problème avant, voici ma classe qui a résolu les conversions de couleurs Utilisez-le et profitez de:

Ici, allez, utilisez ma classe pour la conversion multicolore

 using System; using System.Windows.Media; using SDColor = System.Drawing.Color; using SWMColor = System.Windows.Media.Color; using SWMBrush = System.Windows.Media.Brush; //Developed by امین امیری دربان namespace APREndUser.CodeAssist { public static class ColorHelper { public static SWMColor ToSWMColor(SDColor color) => SWMColor.FromArgb(color.A, color.R, color.G, color.B); public static SDColor ToSDColor(SWMColor color) => SDColor.FromArgb(color.A, color.R, color.G, color.B); public static SWMBrush ToSWMBrush(SDColor color) => (SolidColorBrush)(new BrushConverter().ConvertFrom(ToHexColor(color))); public static ssortingng ToHexColor(SDColor c) => "#" + cRToSsortingng("X2") + cGToSsortingng("X2") + cBToSsortingng("X2"); public static ssortingng ToRGBColor(SDColor c) => "RGB(" + cRToSsortingng() + "," + cGToSsortingng() + "," + cBToSsortingng() + ")"; public static Tuple GetColorFromRYGGradient(double percentage) { var red = (percentage > 50 ? 1 - 2 * (percentage - 50) / 100.0 : 1.0) * 255; var green = (percentage > 50 ? 1.0 : 2 * percentage / 100.0) * 255; var blue = 0.0; SDColor result1 = SDColor.FromArgb((int)red, (int)green, (int)blue); SDColor result2 = SDColor.FromArgb((int)green, (int)red, (int)blue); return new Tuple(result1, result2); } } } 

Il suffit souvent d’utiliser le pinceau d’un frère ou d’un parent pour cela, et cela est facilement disponible dans wpf via la récupération de leur propriété Foreground ou Background.

ref: Control.Background