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

Neuerungen in .NET 6.0 – das eine .NET, sie alle zu beherrschen

mit Dr. Holger Schwichtenberg (DOTNET-DOKTOR)

C# Workshop: — was kommt Neues mit C# 10 und .NET 6?

mit Rainer Stropek (timecockpit.com)

Funktionaler Code mit C# 9

Oliver Sturm (DevExpress)

 

Software Architecture Camp

Advanced Web Pentesting

mit Christian Schneider (Schneider IT-Security)

What Star Wars Taught Me About Secure System Design

mit Anne Oikarinen (Nixu Corporation)

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 -