Как получить цвет под курсором в Silverlight? - PullRequest
1 голос
/ 09 ноября 2010

Я пытаюсь сделать простую палитру цветов на основе картинки вроде this .И поэтому мне нужно получить цвет под курсором, как я могу получить его?Все, что я нашел об этом, было о настольных приложениях в C #, но не о способе Silverlight.Спасибо.

Ответы [ 2 ]

0 голосов
/ 10 ноября 2010

Вы сами генерируете этот образ?Или вы хотите, чтобы это работало с любым произвольным изображением?

Если вам нужно сделать это для произвольного изображения, вам нужно будет отобразить изображение в WriteableBitmap.Используйте MouseEventArgs.GetPosition (), чтобы получить расположение мыши относительно элемента изображения.Получите доступ к данным массива Pixels на WriteableBitmap и преобразуйте координаты x / y курсора мыши в индекс в массив.

0 голосов
/ 09 ноября 2010

Вы не можете получить доступ к необработанным данным изображения непосредственно в silverlight, поэтому вам нужно будет хранить ваши данные в байтовом массиве, добавить обработчик для MouseMove или MouseLeftButtonDown, чтобы получить позицию курсора по X / Y и исходя из этого вы можете вычислить, какие значения считать из вашего байтового массива, и исходя из этого определить ваш цвет.

более простым / лучшим способом было бы определить алгоритм, который вы используете для генерации палитры цветов, и просто использовать его непосредственно для вычисления необходимого значения RGB из входных данных X / Y. т. е. в вашем примере цвет меняется по отношению к значению X, а яркость по отношению к Y.

...