Рисование захвата в форме без полей - PullRequest
5 голосов
/ 07 февраля 2011

Итак, у меня есть форма без полей, и мне нужно, чтобы она была изменяемого размера (нажав любую из 4 сторон или углов).Чтобы уточнить, я хочу, чтобы моя форма была без полей, как заметки по умолчанию в Windows 7.

enter image description here

У меня она работает (в правом нижнем углу только сейчас)используя код, предоставленный Julien Lebosquain в этом сообщении:

Изменение размера окна без полей в правом нижнем углу

Однако я действительно хотел бы отобразить изображение захвата перетаскивания нанижний правый угол.В своем посте Жюльен упомянул это относительно захвата:

вы можете инициализировать новый
VisualStyleRenderer (VisualStyleElement.Status.Gripper.Normal) и
использовать его PaintBackground() метод.1018 *

Я не уверен, как это сделать в моей форме.Может кто-нибудь направить меня в правильном направлении?

Спасибо.

Ответы [ 2 ]

8 голосов
/ 07 февраля 2011

Итак, прочитав об этом немного здесь: http://msdn.microsoft.com/en-us/library/system.windows.forms.visualstyles.visualstyleelement.status.gripper.normal.aspx, У меня есть решение.

Сначала переопределите событие OnPaint() для формы.

   protected override void OnPaint(PaintEventArgs e) {
       base.OnPaint(e);
       DrawGripper(e);
   }

И метод, который делает рисунок.

   public void DrawGripper(PaintEventArgs e) {
       if (VisualStyleRenderer.IsElementDefined(
           VisualStyleElement.Status.Gripper.Normal)) {
           VisualStyleRenderer renderer = new VisualStyleRenderer(VisualStyleElement.Status.Gripper.Normal);
           Rectangle rectangle1 = new Rectangle((Width) - 18, (Height) - 20, 20, 20);
           renderer.DrawBackground(e.Graphics, rectangle1);
       }
   }
1 голос
/ 07 февраля 2011

Смотрите это сообщение на CodeProject http://www.codeproject.com/KB/cs/borderlessform.aspx

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