Frage

Ich habe ein Formular, dass ich möchte eine benutzerdefinierte Titelleiste ziehen mit sowie benutzerdefinierte Ränder um die Anwendung das Formular Redimensionierung zu übernehmen. Ich drehte die reguläre Titelleiste für die Anwendung aus, und meine eigenen aus einem Paar Bild bauen, die ich Anker auf die Anwendung eingestellt. Das Problem ist, wenn das Formular geändert wird, ist es sehr abgehackt aussieht, weil die Form tut es, bis der Größe nach der Form gemalt. Was brauche ich, um zu tun, um die Änderung der Größe der Grenze zu glätten. Auch wenn ich die Grenzen der Form beginnt zu blinken viel, um die Größe und die Größenänderung ist nicht ganz richtig. Es ändert die Größe, aber es ist nicht die Menge nicht die Größe es auch angenommen hat. Hier ist ein Beispiel für den Code i verwenden Sie das Formular mit den Grenzen zu ändern.

#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

Ich bin sehr neu, wenn es um Bildung geht schmerzend und solche so dass jede Hilfe sehr geschätzt wird.

Danke!

War es hilfreich?

Lösung

Unter der Annahme, Sie sprechen über Windows Forms, Sie möchten nicht die Titelleiste auszuschalten. Sie lassen Sie es auf, aber Sie dann Non-Client-Farbe-Nachrichten verarbeiten.

Allerdings WinForms nicht enthalten Nicht-Client-Farbe Ereignisse, so werden Sie WndProc außer Kraft setzen müssen, und übernehmen die NC_ * Nachrichten selbst oder einen Dritten Bibliothek verwenden, der diese der Fall ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top