Ich lese einige Antworten auf, wie man die Maximierung einer WPF-App verhindern kann, und die meisten von ihnen funktionieren.Verhindern Maximieren von Task-Manager (WPF-Anwendung)
ResizeMode="CanMinimize"
funktioniert ok.
ist jedoch ein Benutzer noch in der Lage zu dem Task-Manager zu gehen und ein Fenster von dort zu maximieren:
und das verursacht einige Probleme.
Eine vorgeschlagene Lösung ist StateChanged
Ereignis zu hören, etwa so:
this.StateChanged += new System.EventHandler((sender, eventArgs) =>
{
if (this.WindowState == System.Windows.WindowState.Maximized)
{
this.WindowState = System.Windows.WindowState.Normal;
}
}
funktioniert das auch, aber es gibt wie eine ‚blickering‘ Animation, Fenster links Ecke nach oben geht, und dann sofort wieder in der Es ist die ursprüngliche Position. In gewisser Weise funktioniert es, aber es ist nicht schön in den Augen.
Gibt es eine Möglichkeit, Zustandsänderung Ereignis zu behandeln, bevor es ausgeführt wird? Etwas wie BeforeStateChange
Ich denke, dass ohne P-aufrufen dies unmöglich sein kann:/ – sTrenat
Sorry für nicht hilfreich Kommentare veröffentlichen, aber ich wouldn‘ Ich bin wirklich besorgt darüber, "nett in den Augen" zu sein, wenn der Benutzer große Anstrengungen unternimmt (TaskManager), um das beabsichtigte Layout zu überwinden. Sie sollten eher entscheiden, ob der Benutzer falsch versucht, Ihr Fenster zu maximieren (Hinweis: der Benutzer ist nie falsch, aber oft ahnungslos!) Oder wenn Sie falsch entscheiden, eine Fenstergröße, die nicht gut mit den Benutzern spielt Windows-Einstellung von extra großen Schriftarten. – grek40