深入探讨WPF窗口不规则形式实现技巧

开发 开发工具
WPF窗口要想实现一个不规则的窗口形态,其方法是比较简单的。我们在操作之前,要做的首先就是修改几个窗口属性。

WPF中的窗口实现,在许多应用程序中都是比较常用到的。而且根据开发人员需求的不同,WPF窗口还可以根据需求进行各种形态的变化。#t#

在WPF窗口要实现不规则形状的窗口其实很简单,首先我们要设置几个Window的属性,如下:

  1. < Window x:Class="Borderless
    Window.Window1"
     
  2. xmlns="http://schemas.microsoft.
    com/winfx/2006/xaml/presentation"
     
    xmlns:x="http://schemas.microsoft.
    com/winfx/2006/xaml"
     
  3. Title="BorderlessWindow" 
    Height="300" Width="300" 
  4. WindowStyle="None" Background=
    "{x:Null}" AllowsTransparency="True" 
  5. > 

这里我们设置了WindowStyle="None",这表示去掉WPF窗口的边框和标题栏;Background="{x:Null}"表示背景为透明,这一步必须做,因为默认的背景色是白色的;AllowsTransparency="True"是与WindowsStyle.None配合使用的,如果你在此时把WindowStyle="None"去掉,会收到一个错误。

在主窗口中,我们可以放入以下一段代码:

 

 

  1. < Grid> 
  2. < Border CornerRadius="5,5,5,5" 
    Background="#FF777777" 
    Height="Auto"> < /Border> 
  3. < /Grid> 

这表示一个带有圆弧弯角的矩形。

 

但这样是不是就实现了呢?当然不是,现在运行WPF窗口你会发现一些问题——无法拖动、无法关闭。不过不用担心,实现这些功能并不难,因为Window提供了相应的函数来实现拖动和关闭——DragMove和Close。

拖动的话,我们可以为Window添加一个MouseLeftButtonDown的事件处理程序,并在里面调用DragMove就可以了(不需要任何参数):

  1. public void DragWindow
    (object sender, Mouse
    ButtonEventArgs args)  
  2. {  
  3. this.DragMove();  

至于关闭,我们可以添加一个按钮,然后在Click事件处理程序中调用Close:

  1. public void CloseWindow
    (object sender, Routed
    EventArgs args)  
  2. {  
  3. this.Close();  

 

为了让关闭按钮更别致些,我对Button的Template做了重载。到这里就基本完成了WPF窗口的设置。

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-25 14:18:03

WPF依赖属性

2009-12-23 16:13:00

WPF Attache

2009-12-29 15:24:48

WPF对话框

2009-12-23 16:27:49

WPF UI自动化模型

2009-12-01 16:34:21

PHP表单

2010-07-21 09:38:15

PHP缓存技术

2010-11-22 14:18:32

MySQL锁机制

2024-04-01 13:05:13

C++接口类开发

2021-05-17 05:36:02

CSS 文字动画技巧

2009-11-20 17:17:08

Oracle函数索引

2023-01-12 17:18:06

数据库多云

2011-02-25 09:23:00

Java类加载器

2010-03-31 14:58:03

云计算

2010-03-05 13:44:00

Python序列

2009-08-27 11:27:58

foreach语句C# foreach语

2015-09-02 08:57:56

JavaHashMap工作原理

2024-01-26 06:42:05

Redis数据结构

2012-02-28 14:43:43

2013-07-11 09:45:48

扁平化扁平化设计

2017-01-03 17:57:46

Android异步精髓Handler
点赞
收藏

51CTO技术栈公众号