Create a non-rectangular window : Window Style « Windows Presentation Foundation « VB.Net Tutorial

Home
VB.Net Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statements
5.Date Time
6.Class Module
7.Development
8.Collections
9.Generics
10.Attributes
11.Event
12.LINQ
13.Stream File
14.GUI
15.GUI Applications
16.Windows Presentation Foundation
17.2D Graphics
18.I18N Internationlization
19.Reflection
20.Regular Expressions
21.Security
22.Socket Network
23.Thread
24.Windows
25.XML
26.Database ADO.net
27.Design Patterns
VB.Net
VB.Net by API
VB.Net Tutorial » Windows Presentation Foundation » Window Style 
16.59.4.Create a non-rectangular window
<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.vb
Imports System
Imports System.Windows
Imports System.Windows.Input

Namespace NonRectangularWindowSample

  Public Partial Class NonRectangularWindow
    Inherits Window

    Public Sub New()
      InitializeComponent()
    End Sub

    Private Sub NonRectangularWindow_MouseLeftButtonDown(sender As Object, e As MouseButtonEventArgs)
      Me.DragMove()
    End Sub

    Private Sub closeButtonRectangle_Click(sender As Object, e As RoutedEventArgs)
      Me.Close()
    End Sub
  End Class
End Namespace
WPF Create A Nonrectangular Window
16.59.Window Style
16.59.1.Change window cursorChange window cursor
16.59.2.Non-Rectangular windowNon-Rectangular window
16.59.3.Transparent WindowTransparent Window
16.59.4.Create a non-rectangular windowCreate a non-rectangular window
16.59.5.Windows Transparent BackgroundWindows Transparent Background
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.