जवाबों:
Brush brush = new SolidColorBrush(color);
दूसरी तरह के आसपास:
if (brush is SolidColorBrush colorBrush)
Color color = colorBrush.Color;
या कुछ इस तरह का।
बिंदु सभी ब्रश रंग नहीं हैं, लेकिन आप सभी रंगों को एक (सॉलिडकोलर) ब्रश में बदल सकते हैं।
I want to convert from Brush to Color in c#तब किया जाता था जब शीर्षक आसपास का अन्य तरीका था।
आप इसका उपयोग कर सकते हैं:
new SolidBrush(color)
रंग कुछ इस तरह है:
Color.Red
या
Color.FromArgb(36,97,121))
या ...
SolidBrush( System.Drawing) .NET फ्रेमवर्क 1.1 के बाद से उपलब्ध है, जबकि SolidColorBrush( System.Windows.Media) .NET फ्रेमवर्क 3.0 से शुरू हो रहा है।
मेरे पास पहले भी यही मुद्दा था, यहां मेरी कक्षा है जो रंग रूपांतरण को हल करती है इसका उपयोग करें और आनंद लें:
यहाँ यू गो, माई क्लास टू मल्टी कलर कन्वर्जन का उपयोग करें
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 string ToHexColor(SDColor c) => "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2");
public static string ToRGBColor(SDColor c) => "RGB(" + c.R.ToString() + "," + c.G.ToString() + "," + c.B.ToString() + ")";
public static Tuple<SDColor, SDColor> 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<SDColor, SDColor>(result1, result2);
}
}
}
यदि आप एक ऐसे एप्लिकेशन के साथ काम कर रहे हैं जिसमें विंडोज फॉर्म और WPF का मिश्रण है, तो आपको System.Drawing.Color को एक System.Windows.Media.Color में बदलने की कोशिश करने की अतिरिक्त जटिलता हो सकती है। मुझे यकीन नहीं है कि ऐसा करने का एक आसान तरीका है, लेकिन मैंने इसे इस तरह से किया है:
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);
}
फिर आप ब्रश में बदलने के लिए पहले बताई गई तकनीकों में से एक का उपयोग कर सकते हैं।
यह अक्सर उद्देश्य के लिए सहोदर या माता-पिता के ब्रश का उपयोग करने के लिए पर्याप्त होता है, और यह उनकी फ़ोरग्राउंड या पृष्ठभूमि संपत्ति को पुनः प्राप्त करने के माध्यम से आसानी से wpf में उपलब्ध होता है।
रेफरी: नियंत्रण। बैकग्राउंड
SolidBrush(System.Drawing), जो .NET फ्रेमवर्क 1.1 के बाद से उपलब्ध है,SolidColorBrush(System.Windows.Media) के बजाय , उपलब्ध है।