রঙ থেকে ব্রাশে রূপান্তর করুন


110

আমি কীভাবে একটিকে সি # Colorতে রূপান্তর করব Brush?

উত্তর:


139

এই জন্য Colorকরতে Brush....

আপনি এটি রূপান্তর করতে পারবেন না, আপনাকে একটি নতুন ব্রাশ তৈরি করতে হবে ....

SolidColorBrush brush = new SolidColorBrush( myColor );

এখন, আপনার যদি এক্সএএমএল প্রয়োজন হয়, আপনি একটি কাস্টম মান রূপান্তর করতে এবং এটি একটি বাধ্যতামূলকভাবে ব্যবহার করতে পারেন


8
পশ্চাদপদ সামঞ্জস্যের জন্য, SolidBrush( System.Drawing) ব্যবহার করা ভাল হবে , যা .NET ফ্রেমওয়ার্ক 1.1 থেকে SolidColorBrush( System.Windows.Media) এর পরিবর্তে উপলব্ধ .NET ফ্রেমওয়ার্ক 3.0 থেকে উপলব্ধ।
বিলিজয়

35
Brush brush = new SolidColorBrush(color);

অন্যান্য উপায়ে:

if (brush is SolidColorBrush colorBrush)
    Color color = colorBrush.Color;

বা এমন কিছু।

পয়েন্ট হ'ল সমস্ত ব্রাশ রঙ নয় তবে আপনি সমস্ত রঙকে একটি (সলিড কালার) ব্রাশে পরিণত করতে পারেন।


ব্রাশ থেকে রঙ!
কিশোর

@ রেজারেল: আপনার তথ্যের জন্য, I want to convert from Brush to Color in c#শিরোনামটি অন্যদিকে যেমন ছিল তখন প্রশ্ন সামগ্রীতে ব্যবহৃত হত ।
এইচবি


18

আপনি এটি ব্যবহার করতে পারেন:

new SolidBrush(color)

যেখানে রঙ এইরকম কিছু:

Color.Red

অথবা

Color.FromArgb(36,97,121))

বা ...


2
পশ্চাদপটে সামঞ্জস্যের জন্য, এই উত্তরটি আরও ভাল, কারণ SolidBrush( System.Drawing) .NET ফ্রেমওয়ার্ক 1.1 থেকে উপলব্ধ, যখন SolidColorBrush( System.Windows.Media) নেট নেট ফ্রেমওয়ার্ক 3.0 থেকে শুরু করে।
বিলিজয়

2

আমার আগেও একই সমস্যা ছিল, এখানে আমার ক্লাসটি রঙ রূপান্তর সমাধান করেছে এটি ব্যবহার করুন এবং উপভোগ করুন:

এখানে আপনি যান, আমার ক্লাস টু মাল্টি কালার রূপান্তরটি ব্যবহার করুন

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);
        }
    }

}

1

আপনি যদি এমন একটি অ্যাপ্লিকেশন নিয়ে কাজ করছেন যা উইন্ডোজ ফর্ম এবং ডাব্লুপিএফ এর মিশ্রণ নিয়ে কাজ করে থাকে তবে আপনার সিস্টেম.ড্রাউইং.ক্লোরকে একটি সিস্টেম.আর উইন্ডোজ.মিডিয়া.ক্লোর রূপান্তর করার চেষ্টা করার অতিরিক্ত জটিলতা থাকতে পারে। এটি করার সহজ উপায় আছে কিনা তা সম্পর্কে আমি নিশ্চিত নই, তবে আমি এটি এইভাবে করেছি:

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);
}

তারপরে আপনি ব্রাশে রূপান্তর করতে পূর্বে উল্লিখিত একটি কৌশল ব্যবহার করতে পারেন।


0

এটি প্রায়শই ভাইবোন বা পিতামাতার ব্রাশটি ব্যবহারের জন্য ব্যবহার করার জন্য যথেষ্ট এবং এগুলি তাদের ফোরগ্রাউন্ড বা ব্যাকগ্রাউন্ড সম্পত্তি পুনরুদ্ধারের মাধ্যমে ডাব্লুপিএফ-তে সহজেই উপলব্ধ।

রেফ: কন্ট্রোল.ব্যাকগ্রাউন্ড

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.