2010-11-08 58 views
1

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

回答

0

您不能直接在silverlight中访问原始图像数据,因此您需要将数据保存到字节数组中,为MouseMoveMouseLeftButtonDown添加处理程序以获取光标的X/Y位置,并从你可以计算从你的字节数组中读取什么值,并从中决定你的颜色。

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

+0

谢谢你的回答! – Pavel 2010-11-11 21:19:27

0

你是否自己生成该图像?或者你想让它适用于任何图像?

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

+0

好的,谢谢。我会尽快尝试。 – Pavel 2010-11-11 21:18:59