深入探讨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窗口的设置。

新闻名称:深入探讨WPF窗口不规则形式实现技巧
标题网址:http://www.gawzjz.com/qtweb2/news13/28563.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联