উত্তর:
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
) নেট নেট ফ্রেমওয়ার্ক 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);
}
}
}
আপনি যদি এমন একটি অ্যাপ্লিকেশন নিয়ে কাজ করছেন যা উইন্ডোজ ফর্ম এবং ডাব্লুপিএফ এর মিশ্রণ নিয়ে কাজ করে থাকে তবে আপনার সিস্টেম.ড্রাউইং.ক্লোরকে একটি সিস্টেম.আর উইন্ডোজ.মিডিয়া.ক্লোর রূপান্তর করার চেষ্টা করার অতিরিক্ত জটিলতা থাকতে পারে। এটি করার সহজ উপায় আছে কিনা তা সম্পর্কে আমি নিশ্চিত নই, তবে আমি এটি এইভাবে করেছি:
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);
}
তারপরে আপনি ব্রাশে রূপান্তর করতে পূর্বে উল্লিখিত একটি কৌশল ব্যবহার করতে পারেন।
এটি প্রায়শই ভাইবোন বা পিতামাতার ব্রাশটি ব্যবহারের জন্য ব্যবহার করার জন্য যথেষ্ট এবং এগুলি তাদের ফোরগ্রাউন্ড বা ব্যাকগ্রাউন্ড সম্পত্তি পুনরুদ্ধারের মাধ্যমে ডাব্লুপিএফ-তে সহজেই উপলব্ধ।
SolidBrush
(System.Drawing
) ব্যবহার করা ভাল হবে , যা .NET ফ্রেমওয়ার্ক 1.1 থেকেSolidColorBrush
(System.Windows.Media
) এর পরিবর্তে উপলব্ধ .NET ফ্রেমওয়ার্ক 3.0 থেকে উপলব্ধ।