Tipp der Woche 07.04.2022, 09:53 Uhr

WPF: Fenster ohne Fensterrahmen

Soll das Anwendungsfenster anders als gewöhnlich aussehen, stört der für Windows typische Fensterrahmen. Den kann man ganz einfach weglassen.
(Quelle: B. Lauer)
Startet man die Arbeit an einer neuen WPF-Desktop-Anwendung, so gibt Visual Studio den folgenden XAML-Code vor, welcher ein ganz normales Fenster mit dem üblichen Rahmen erzeugt:
<Window x:Class="MainWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:local="clr-namespace:Test"
  mc:Ignorable="d"
  Title="MainWindow" Height="450" Width="800">

  <Grid>
  </Grid>
</Window>
Um den Rahmen zu entfernen muss die folgende Zeile hinzugefügt werden:
AllowsTransparency="True" WindowStyle="None"
Das resultierende Fenster hat keinen Rahmen mehr, allerdings kann man es auch nicht mehr mit der Maus verschieben, auch das Vergrößern und Verkleinern klappt nicht mehr. Dafür braucht es jedoch auch nur eine kleine Erweiterung, so dass der Code dann beispielsweise so aussieht:
<Window x:Class="MainWindow"
  ...
  Title="MainWindow" Height="850" Width="1220"
  AllowsTransparency="True" WindowStyle="None"
  >

  <!-- sorgt dafür, dass man das Fenster per Maus
  vergrößern/verkleinern/verschieben kann -->
  <WindowChrome.WindowChrome>
    <WindowChrome />
  </WindowChrome.WindowChrome>
  ...
</Window>
Jetzt fehlen nur noch ein paar Steuerelemente, um den Nutzer zu erlauben, das Fenster zu minimieren (Me.WindowState = WindowState.Minimized) oder zu schließen (Me.Close).


Das könnte Sie auch interessieren