Create a non-rectangular window : Window Style « Windows Presentation Foundation « C# / CSharp Tutorial






<Window x:Class="NonRectangularWindowSample.NonRectangularWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="NonRectangularWindowSample" SizeToContent="WidthAndHeight" 
  MouseLeftButtonDown="NonRectangularWindow_MouseLeftButtonDown"
  WindowStyle="None" 
  AllowsTransparency="True" 
  Background="Transparent">
  <Canvas Width="200" Height="200" >
    <Path Stroke="DarkGray" StrokeThickness="2">

      <Path.Fill>
        <LinearGradientBrush StartPoint="0.2,0" EndPoint="0.8,1" >
          <GradientStop Color="White"  Offset="0"></GradientStop>
          <GradientStop Color="Red"  Offset="0.45"></GradientStop>
          <GradientStop Color="LightBlue" Offset="0.9"></GradientStop>
          <GradientStop Color="Gray" Offset="1"></GradientStop>
        </LinearGradientBrush>
      </Path.Fill>

      <Path.Data>
        <PathGeometry>
          <PathFigure StartPoint="40,20" IsClosed="True">
            <LineSegment Point="160,20"></LineSegment>
            <ArcSegment Point="180,40" Size="20,20" SweepDirection="Clockwise"></ArcSegment>
            <LineSegment Point="180,80"></LineSegment>
            <ArcSegment Point="160,100" Size="20,20" SweepDirection="Clockwise"></ArcSegment>
            <LineSegment Point="90,100"></LineSegment>
            <ArcSegment Point="20,80" Size="20,20" SweepDirection="Clockwise"></ArcSegment>
            <LineSegment Point="20,40"></LineSegment>
            <ArcSegment Point="40,20" Size="20,20" SweepDirection="Clockwise"></ArcSegment>
          </PathFigure>
        </PathGeometry>
      </Path.Data>

    </Path>

    <Label Width="200" Height="120" FontSize="15" HorizontalContentAlignment="Center" VerticalContentAlignment="Center">Drag Me</Label>
    <Button Canvas.Left="155" Canvas.Top="30" Click="closeButtonRectangle_Click">
      <Button.Template>
        <ControlTemplate>
          <Canvas>
            <Rectangle Width="15" Height="15" Stroke="Black" RadiusX="3" RadiusY="3">
              <Rectangle.Fill>
                <SolidColorBrush x:Name="myAnimatedBrush" Color="Red" />
              </Rectangle.Fill>
            </Rectangle>
            <Line X1="3" Y1="3" X2="12" Y2="12" Stroke="White" StrokeThickness="2"></Line>
            <Line X1="12" Y1="3" X2="3" Y2="12" Stroke="White" StrokeThickness="2"></Line>
          </Canvas>
        </ControlTemplate>
      </Button.Template>
    </Button>
  </Canvas>
</Window>
//File:Window.xaml.cs
using System;
using System.Windows;
using System.Windows.Input;

namespace NonRectangularWindowSample {

  public partial class NonRectangularWindow : Window {

    public NonRectangularWindow() {
      InitializeComponent();
    }

    void NonRectangularWindow_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) {
      this.DragMove();
    }

    void closeButtonRectangle_Click(object sender, RoutedEventArgs e) {
      this.Close();
    }
  }
}
WPF Create A Nonrectangular Window








24.72.Window Style
24.72.1.Window BackgroundWindow Background
24.72.2.Create a non-rectangular windowCreate a non-rectangular window
24.72.3.Transparent WindowTransparent Window
24.72.4.Non-Rectangular windowNon-Rectangular window
24.72.5.Windows Transparent BackgroundWindows Transparent Background
24.72.6.Set WindowStyle = WindowStyle.ToolWindow
24.72.7.Set brush to Window background