WPF-create a non-rectangle window, And WPF-create a rectangle window
1. Set AllowsTransparency of the window to True.
2. Set the Background of the window to Transparent.
Third, set WindowStyle to None in the window.
4. Use Clip or Border to set the Grid in the window to the desired shape.
Code example (using Clip to implement the rounded corner window)
1 <Window x:Class="Test" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:CaiPiaoUI" 7 mc:Ignorable="d" 8 Title="Test" Height="500" Width="500" WindowStyle="None" AllowsTransparency="True" 9 Background="Transparent" WindowStartupLocation="CenterScreen">10 <Grid Background="Blue">11 <Grid.Clip>12 <RectangleGeometry RadiusX="50" RadiusY="50" Rect="0,0,500,500"></RectangleGeometry>13 </Grid.Clip>14 </Grid>15 </Window>
Code example (using Border to implement the rounded corner window)
1 <Window x:Class="Test" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:CaiPiaoUI" 7 mc:Ignorable="d" 8 Title="Test" Height="500" Width="500" WindowStyle="None" AllowsTransparency="True" 9 Background="Transparent" WindowStartupLocation="CenterScreen">10 <Grid>11 <Border BorderThickness="20" CornerRadius="50" Background="Blue"></Border>12 </Grid>13 </Window>
Note that the position of the background color of the window is as follows:
In Clip implementation mode, the background color of the window is set on the Grid;
In Border implementation mode, the background color of the window is set on Border.