Tag: 颜色

将OBJECT转换为System.Drawing.Color

我知道有很多种方法可以在C#中转换颜色,从将字符串转换为Color值,HTML转换甚至是XNA框架,都是如此; 但是,我有一个返回System.Drawing.Color类型的对象; 但由于它是一个“对象”而不是“颜色”,我似乎无法在其上使用正常的颜色命令。 public void SetPropertyValue(string propertyName, object value) { _PropertyValues[propertyName] = value; Console.WriteLine(“Setting Property: {0}={1}”, propertyName, value); } 以上是当用户在C#中更改属性Grid上的值时发生的情况。 结果如下: 已知名称 设置属性:颜色=颜色[DimGray] 自定义颜色 设置属性:颜色=颜色[A = 255,R = 255,G = 255,B = 128] 系统颜色 设置属性:Color = Color [ControlText] 我想获取它所具有的值,并实际将其转换为颜色,以便我可以将它放在defaultColor变量中,该变量是先前在程序中创建的。 但是,因为它是一个对象,而不是一个真正的’System.Drawing.Color’,我不能使用像: .ToKnownColor() .ToArgb() 。命名() 等等。 我知道必须有一种方法可以将对象转换为实际颜色。 我执行value.GetType()并返回System.Drawing.Color ,因此系统知道它是一种颜色,但对于我的生活,我似乎无法操纵它。 我还不是C#的专家,很抱歉,如果这听起来如此基本,但我仍然希望得到一些帮助。

C#在datagridview行中着色相同的值

假设我有一个填充行的datagridview。 现在为了使某些数据更加清晰,我想为某些细胞的背景着色。 但是有一些警告,我想要着色的列数可能会有所不同。 为了使事情更清楚,我将草拟一个假的数据网格: Name Thing2 col1 col2 col3 tes test 1 1 2 t2t ers 3 3 3 der zoef 2 3 1 现在,col1-col3细胞需要着色,具体取决于它们的值。 第一列中的单元格将始终为绿色(按照惯例),偏离它的单元格将显示为红色。 因此,第一行将col1和col2颜色为绿色,col3为红色等。 有关如何最好地解决这个问题的任何想法?

生成一组特定的随机但唯一的颜色

我想要做的是给我的listView中的每个项目都有一个独特的颜色。 所以我的列表视图中的项目数为’count’ 我的方法是调用下面的方法并给出我的项目的方法编号,然后它应该有一个保存第一种颜色的数组,然后当要生成下一种颜色时,它应该与数组之前的颜色进行比较。 问题是我无法弄清楚我将需要什么样的数组的方法,以及如何比较数组中的每个插入颜色与最后插入的颜色。 这是我的代码: public Color GetUniqueRandomColor(int count){ for(int i = 0; i < count; i++) { Color.FromArgb(randomColor.Next(70, 200), randomColor.Next(100, 225), randomColor.Next(100, 230)); } return Color.Red;} 这是一个元素在数组中的样子: 颜色[A = 255,R = 132,G = 148,B = 181] 正如您所看到的,我的方法仍然缺少所需的数组和算法来比较新插入的颜色。 一些帮助和提示将受到关注!

每次创建相同颜色对应数组的算法?

对于我的程序,我试图创建一个函数,它将生成一个颜色数组(每次应该是相同的,所以没有随机性),其中每种颜色与其他颜色有很大不同。 你为什么要问? 好吧,因为用户可以向用户控件添加自定义项目,并且通过添加每个项目,项目应该与特定颜色相关联。 显然这会很糟糕: Red Dark Red Light Red Pink 因为在视觉上所有这些都在色彩和颜色上非常相似,并且用户将无法区分它们。 理想情况下,函数会产生这样的结果: Red Dark Green Light Cyan Orange 在这种情况下,每种颜色与其他颜色大不相同,并且用户可以容易地在视觉上区分它们。 但是,我在提出一个执行此操作的算法时遇到了一些麻烦。 我知道我想使用Color.FromArgb,但我不确定如何构造循环,其中每个项目与其他项目有很大不同,但每次运行该函数时它都是相同的。 模数运算符可能会有所帮助。我一直在使用不同的方法,但每个方法总是有一个颜色太过类似于数组中的另一种颜色。 我想用循环来做这件事,但这似乎暗示了一种模式以及所有颜色之间的色调,色调或亮度的相似性。 我想我可以硬编码很多值,但我真的不想…… = X. 好吧,如果您有任何想法,请告诉我! 谢谢!!

如何将字符串转换为颜色? 对于Windows Phone c#

我有一个用户控件,我已经将一个字符串绑定到xaml路径。 这使我可以选择“黑色”“蓝色”等颜色,并使用六角数作为字符串来选择颜色。 但是我无法在C#代码中使用相同的字符串。 以下示例中显示了以下内容: SolidColorBrush blackBrush = new SolidColorBrush(); SolidColorBrush mySolidColorBrush = new SolidColorBrush(); mySolidColorBrush.Color = shieldGearModelRec.Gear.Color; 所以最后一个字符串shieldGearModelRec.Gear.Color是我在XAML中用作绑定的。 它可以将颜色名称或六角形描述转换为颜色。 但是如何在后面的代码中执行此操作,即在c#中? 我的搜索在C#中找到了将字符串转换为Color等内容,但这在Windows手机中无法实现。 反正有没有完成这个? 一个主意 我是否需要创建一个读取字符串的转换器,查找#以确定它是否为hexa或颜色名称,然后使用hexa转换器查找rgb,以及名称的开关? 这似乎不是最聪明的解决方案

在Wpf中使用Color.GetSaturation,Color.GetBrightness

我正在尝试使用此处发现的问题的答案我使用颜色类有问题。 例如, Color.Red.Range(Color.Green, numberOfIntermediateColors); 出现错误,说“’System.Windows.Media.Color’不包含’Red’的定义”与GetBrightness , GetSaturation和GetHue相同,有一个错误说”System.Windows.Media.Color’不包含’GetSaturation’的定义,没有扩展方法’GetSaturation’接受类型’System.Windows.Media.Color’的第一个参数可以找到(你是否缺少using指令或汇编引用?)“ 那么有人可以请建议如何在Wpf中使用建议的答案吗?

这种棕褐色调转换算法有什么问题?

我似乎有一种几乎正常工作的棕褐色调。 由于某种原因,图像的一部分原来是柠檬绿! 有谁知道我可能做错了什么? 方法发布在下面。 private void SepiaBitmap(Bitmap bmp) { Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height); System.Drawing.Imaging.BitmapData bmpData = bmp.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format32bppRgb); IntPtr ptr = bmpData.Scan0; int numPixels = bmpData.Width * bmp.Height; int numBytes = numPixels * 4; byte[] rgbValues = new byte[numBytes]; System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, numBytes); for (int i = 0; i 255) […]

我可以在C#4.0中指定默认的Color参数吗?

这是一个示例函数: public void DrawSquare(int x, int y, Color boxColor = Color.Black) { //Code to draw the square goes here } 编译器不断给我错误: Default parameter value for ‘boxColor’must be a compile-time constant 我试过了 Color.Black, Color.FromKnownColor(KnownColor.Black), and Color.FromArgb(0, 0, 0) 如何使Color.Black成为默认颜色? 另外,我不想使用字符串Black来指定它(我知道它可以工作)。 我想要Color.Black值。

如何在C#中更改文本框中的字体颜色?

如果我想将文本文件上传到文本框中并希望突出显示某些字体颜色更改的单词,如何在不绘制文本的情况下执行此操作? 谢谢。

对于jpg图像文件,获得3-4个平均主色

我希望能够检测到jpg图像文件的3-4种主要颜色。 示例图像和示例代码如下: – 红色,黑色,白色 – 白色,绿色,粉红色 – 蓝色,黄色,黑色 我修改了一些代码以获得以下内容,但仍然无法对颜色进行分组。 public static int RoundColorToGroup(int i) { int r = ((int)Math.Round(i / 10.0)) * 10; if (r > 255) r = 255; return r; } [TestMethod] public void AverageColorTest_WebExample() { Bitmap bm = new Bitmap(“C:\\Users\\XXXX\\Desktop\\example1.jpg”); int width = bm.Width; int height = bm.Height; int red = 0; […]