极品分享

WPF 创建无边框的圆角窗口

如题所述,在WPF中要创建一个没有边框且为圆角的窗体,有如下几步工作要进行:

第一步:去掉窗体默认样式的边框

首先将窗体的背景设为透明,将允许透明的属性设置为True,即:Background="Transparent"  AllowsTransparency="True",将Window的WindowStyle属性设置为None,即WindowStyle="None" (当AllowsTransparency="True"时,WindowStyle.None 是 WindowStyle 的唯一有效值)

注:这几个属性必须按要求设置,否则会影响最终的效果。

事例代码:

<Window x:Class="WPFTest.Splash"
	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="Splash" Width="640" Height="480"
        <!--去掉窗体默认样式-->
        WindowStyle="None"
        <!--窗体背景透明-->
        Background="Transparent"
        AllowsTransparency="True"
>

第二步:设置窗体的圆角效果

这个设置就相对简单,只需在<Grid></Grid>标签下通过border设置即可实现,具体的设置代码如下:
<Grid>
  <Border BorderThickness="1" BorderBrush="Gray"  CornerRadius="15,15,15,15">
   <!--你窗体中要显示的内容-->
  </Border>
</Grid>
注:此时的窗体背景透明,如果要为窗体设置背景色,那么要在border标签下添加Background属性即可。
通过以上两步即可实现圆角窗口的实现^.^



第三步:如果需要窗体可以随意拖动,需要为窗体添加MouseLeftButtonDown事件来实现,MouseLeftButtonDown的实现也相当的简单

public void DragWindow(object sender, MouseButtonEventArgs args) 
{
   this.DragMove();
}

或者

#region 窗口移动事件
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
    if (e.LeftButton == MouseButtonState.Pressed)
    {
        DragMove();
    }
        }
#endregion


2017-05-24 0 /
NET学习
/
标签: 

评论回复

回到顶部