如何在Silverlight中获得光标下的颜色?

时间:2010-11-08 23:03:59

标签: c# silverlight color-picker

我正在尝试根据像this这样的图片制作一个简单的颜色选择器。所以我需要在光标下获得颜色,我怎么能得到它?我所发现的只是关于C#中的桌面应用程序,而不是关于Silverlight的方式。谢谢。

2 个答案:

答案 0 :(得分:0)

您无法直接在Silverlight中访问原始图像数据,因此您需要将数据保存为字节数组,为MouseMove添加处理程序或MouseLeftButtonDown以获取X / Y光标的位置,从中可以计算从字节数组中读取的值,并从中确定颜色。

更简单/更好的方法是定义用于生成颜色选择器的算法,并直接使用它来计算X / Y输入所需的RGB值。 即在你的例子中,色调相对于X值发生变化,而相对于Y的亮度发生变化。

答案 1 :(得分:0)

您自己生成该图像吗?或者您希望这适用于任意图像吗?

如果您需要为任意图像执行此操作,则需要将图像渲染为WriteableBitmap。使用MouseEventArgs.GetPosition()获取鼠标相对于图像元素的位置。访问WriteableBitmap上的Pixels数组数据,并将鼠标光标的x / y坐标转换为数组的索引。