XAML-Kolumne: WPF und Windows-Apps

XAML-Tipp: WPF – Fenster komplett transparent darstellen
Keine Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „WPF: Fenster komplett transparent darstellen“.

WPF: Fenster komplett transparent darstellen

Es mag spezielle Fälle geben, in denen eine Windows-Anwendung ein komplett transparentes Fenster benötigt. Ein mögliches Beispiel ist ein Record-Button, der ohne besondere Oberfläche auf dem Desktop liegt und bei Bedarf sofort betätigt werden kann. Das sollte unter WPF in der Regel ganz einfach funktionieren, indem die Window Background-Eigenschaft auf den Wert Transparent gesetzt wird. Tests zeigen aber schnell, dass der Hintergrund jetzt nur schwarz dargestellt wird. Der gewünschte Effekt kann also doch nicht ganz so einfach erzielt werden. Damit der gewünschte Effekt doch noch funktioniert, müssen die Transparenz erlaubt und das allgemeine Fenster-Style deaktiviert werden. Also einfach zusätzlich das AllowsTransparency-Property auf „true“ setzen und das WindowStyle-Property auf „none“. Jetzt wird beim Starten der Anwendung nur noch der Inhalt angezeigt. Ein Problem ist nun lediglich das Verschieben vom Fenster, das nicht mehr ohne Weiteres möglich ist. Dazu passend sollte eine Drag-and-Drop-Logik implementiert werden. Der XAML-Code dazu steht in Listing 1, Abbildung 1 zeigt das fertige Ergebnis.

<Window x:Class="WpfWindowTransparent.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"
  mc:Ignorable="d"
  Title="MainWindow" Height="350" Width="525"
  Background="Transparent"
  WindowStyle="None"
  AllowsTransparency="True">
  <Grid>
    <Button Width="100" Height="30">Record</Button>
  </Grid>
</Window>
Abb. 3: Das WPF-Fenster ist komplett transparent

Abb. 1: Das WPF-Fenster ist komplett transparent

BASTA! 2021

Keynote: Auf dem Weg zu „One .NET“ – das eine Framework, sie alle zu beherrschen

mit Dr. Holger Schwichtenberg (www.IT-Visions.de/MAXIMAGO GmbH)

C#-Workshop – was kommt Neues in .NET 5?

mit Rainer Stropek (timecockpit.com)

IT Security Summit 2020

Zero Trust – why are we having this conversation?

mit Victoria Almazova (Microsoft)

Digitaler Ersthelfer

mit Martin Wundram (DigiTrace GmbH)

Aufmacherbild: a window washer squeegiee cleans a window while window washing von Shutterstock / Urheberrecht: mikeledray

Unsere Redaktion empfiehlt:

Relevante Beiträge

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
X
- Gib Deinen Standort ein -
- or -