Возможно ли и как перетаскивать объект GDI? - PullRequest
0 голосов
/ 19 сентября 2010

Я нашел этот учебник по аналоговым часам здесь:

http://www.codeproject.com/KB/selection/AnalogClockControl.aspx

Теперь можно перетаскивать стрелку часов (как определить мышь на часах руки?)и показать, что этот стрелочный час движется при его перетаскивании?

Я имею в виду, что в .NET нет ничего, что позволило бы обнаружить, что мышь находится в форме, подобной IPHONE SDK?

Ответы [ 3 ]

2 голосов
/ 19 сентября 2010

Я бы предложил вам использовать то, что называется "Rx": реактивные расширения, все, что вы хотите, вы можете делать без него, но Rx делает вашу жизнь лучше и проще:)

Существует Rx для .NET и Rx для Javascript, то же самое, и вы можете использовать аналогичные приемы где угодно.

Вот хорошее видео о том, как сделать перетаскивание с использованием Rx в .NET (в этом примере WPF) и даже если вы делаете что-то еще (winforms, silverlight, javascript) - посмотрите это видео в любом случае, оно дает идея и реализация абсолютно одинаковы для всего остального: http://channel9.msdn.com/blogs/j.van.gogh/writing-your-first-rx-application

А вот специфический для javascript drag-n-drop с использованием Rx: http://weblogs.asp.net/podwysocki/archive/2010/03/19/introduction-to-the-reactive-extensions-for-javascript-drag-and-drop.aspx

2 голосов
/ 19 сентября 2010

Вы можете сделать это, если будете рисовать руки с помощью класса GraphicsPath. Его метод IsVisible () позволяет вам выполнять тестирование попаданий в событии MouseDown и обнаруживать, что мышь находится над рукой.

1 голос
/ 19 сентября 2010

Вам нужно будет обработать события MouseDown, MouseMove и MouseUp.

Также вы можете отключить функции time-to-xy от часов и написать обратную версию xy-to-time.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...