C # Изображение поверх другого изображения - PullRequest
2 голосов
/ 12 июля 2011

У меня есть картинка с изображением фиксированного размера (256x256), созданным программой.У меня есть другое маленькое изображение в качестве ресурса.То, что я хочу сделать, это когда мой курсор находится над изображением, и я удерживаю кнопку мыши, меньшее изображение «привязывает» указатель мыши, чтобы оно перемещалось вместе с ним.Если я отпущу кнопку мыши, меньшее изображение останется в этом положении поверх большего изображения.Меньшее изображение - это в основном маркер, что-то вроде X или O.

Я думал о том, чтобы иметь вторую коробку с изображениями поверх первой, но я не могу сделать ее прозрачной.Или перерисовать изображение с меньшим изображением поверх него и перезагрузить изображение в графический блок, но я не уверен, как это сделать, и думаю, что перерисовывать его будет довольно медленно, каждый раз, когда я перемещаю мышь.

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

1 Ответ

2 голосов
/ 12 июля 2011

Создайте свой контроль для этого вместо использования PictureBox.PictureBox следует использовать ТОЛЬКО для фиксированных изображений в форме, и ничего больше.

Вместо этого вы должны получить контроль от UserControl.Включите двойную буферизацию для этого.В методе OnPaint сначала нарисуйте фоновую картинку, затем маркерную картинку после нее.Не волнуйтесь, он НЕ будет медленным и будет работать как надо.

Когда вы отпустите кнопку мыши, обновите фоновое изображение, нарисовав на нем маркерное изображение.

Поскольку каждыйпредложение само по себе является небольшим открытием, надеюсь, вы хорошо проведете время, кодируя свою маленькую игру:)

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