Jawaban:
Brush brush = new SolidColorBrush(color);
Sebaliknya:
if (brush is SolidColorBrush colorBrush)
Color color = colorBrush.Color;
Atau semacam itu.
Intinya tidak semua kuas adalah warna tetapi Anda bisa mengubah semua warna menjadi Kuas (Warna Solid).
I want to convert from Brush to Color in c#
sedangkan judulnya dibalik .
Anda dapat menggunakan ini:
new SolidBrush(color)
dimana warnanya kira-kira seperti ini:
Color.Red
atau
Color.FromArgb(36,97,121))
atau ...
SolidBrush
( System.Drawing
) tersedia sejak .NET Framework 1.1, sementara SolidColorBrush
( System.Windows.Media
) tersedia mulai dari .NET Framework 3.0.
Saya memiliki masalah yang sama sebelumnya, ini adalah kelas saya yang menyelesaikan konversi warna. Gunakan dan nikmati:
Ini dia, Gunakan Kelas saya untuk Konversi Multi Warna
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);
}
}
}
Jika Anda kebetulan bekerja dengan aplikasi yang memiliki campuran Formulir Windows dan WPF, Anda mungkin mengalami kesulitan tambahan saat mencoba mengonversi System.Drawing.Color ke System.Windows.Media.Color. Saya tidak yakin apakah ada cara yang lebih mudah untuk melakukan ini, tetapi saya melakukannya dengan cara ini:
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);
}
Kemudian Anda dapat menggunakan salah satu teknik yang disebutkan sebelumnya untuk mengubahnya menjadi Brush.
Seringkali cukup menggunakan sikat saudara atau orang tua untuk tujuan tersebut, dan itu mudah tersedia di wpf melalui mengambil properti Latar Depan atau Latar Belakang mereka.
SolidBrush
(System.Drawing
), yang tersedia sejak .NET Framework 1.1, daripadaSolidColorBrush
(System.Windows.Media
), tersedia mulai dari .NET Framework 3.0.