Пользовательская строка заголовка и границы формы - PullRequest
0 голосов
/ 14 октября 2010

У меня есть форма, с которой я хотел бы нарисовать настраиваемую строку заголовка, а также настраиваемые границы вокруг приложения для изменения размера формы.Я отключил обычную строку заголовка приложения и создал свой собственный из пары изображений, которые я установил для привязки к приложению.Проблема в том, что при изменении размера формы она выглядит очень изменчивой, потому что форма не меняет ее размер до тех пор, пока форма не будет нарисована.Что бы мне нужно было сделать, чтобы сгладить изменение размеров границ.Кроме того, когда я использую границы для изменения размера, форма начинает часто мигать, и изменение размера не совсем правильно.Это изменяет размер, однако это не изменяет размер суммы, которую он должен.Вот пример кода, который я использую для изменения размера формы с границами.

#region formDragResize
    private Point startDrag = new Point(0, 0);
    private bool resize = false;
    private void rightSideBarMid_MouseDown(object sender, MouseEventArgs e)
    {
        this.startDrag = e.Location;
        this.resize = true;
    }

    private void rightSideBarMid_MouseUp(object sender, MouseEventArgs e)
    {
        this.resize = false;
    }

    private void rightSideBarMid_MouseMove(object sender, MouseEventArgs e)
    {
        if (this.resize)
        {
            Point p1 = new Point(e.X, e.Y);
            Point p2 = this.PointToScreen(p1);
            this.Width = p2.X - this.startDrag.X;
        }
    }
 #endregion

Я очень новичок, когда дело доходит до рисования формы, и поэтому такая помощь приветствуется.

Спасибо!

1 Ответ

0 голосов
/ 14 октября 2010

Если вы говорите о Windows Forms, вы не хотите отключать заголовок. Вы оставляете его включенным, но затем обрабатываете сообщения, не относящиеся к клиенту.

Однако Winforms не включает события рисования, не относящиеся к клиенту, поэтому вам придется переопределить WndProc и обрабатывать сообщения NC_ * самостоятельно или использовать стороннюю библиотеку, которая делает это.

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