[转][小结][三种方法]实现WPF不规则窗体

实现WPF不规则窗体的三种常用的方法如下:

1.使用Blend等工具绘制一个不规则xaml,然后作为窗体的背景。这个可以参考xiaowei0705的这篇博文:WPF制作不规则的窗体 。

2.给window的Clip属性赋Path值。这个可以参考DebugLZQ前面的博文:WPF Effect Clip以及Transform 

3.使用透明背景的PNG图像。本文将要讲述。

本文将要讲述的这种方法,可以说一点技术含量都没有,基本不用动手编写代码。前提是你得有合适的透明背景的PNG图像。

我们假设你已经完成了PNG图像的制作(当然为了演示的话,down一个也行),那么这个不规则窗体实现如下:

复制代码
<Window x:Class="WPFSharpWindow.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="412" Width="528" 
        AllowsTransparency="True" WindowStyle="None" OpacityMask="White" Background="Transparent">
    <Grid MouseLeftButtonDown="Grid_MouseLeftButtonDown">
        <Image Stretch="Fill" Source="/WPFSharpWindow;component/cow.png" />
    </Grid>
</Window>
复制代码

解释下这个xaml需要注意的属性设置:

  allowstransparency="True" - 允许透明

  background="Transparent" - 设置背景透明

  windowstyle="None" - 去掉边框

  opacitymask="White" - 设置白色透明

为Gird订阅的MouseLeftButtonDown路由事件,是为了实现窗体的拖动。事件处理如下:

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

实现效果如下:

效果不清楚?再来两张

题外话:越来越发现发到博客园首页的博文质量是越来越差了,很多文章根本没有一点价值,纯垃圾~

真心建议发到首页的博文,希望博文的作者能够花点时间,分享有价值的东西,不要哗众取宠~试想:你发到首页的博文你自己以后都不愿意去看的,何况别人?也希望博客园团队加强监管力度!

我们写博文的目的是为了分享,分享本来就是一种积累,写博文的过程可以看做是一种沉淀,所以这是一个双赢的事。个人愚见,欢迎批评指正~

 “只要人人都献出一点爱,世界将变成美好的人间...”

Update:

需要运行时更新窗体样式怎么办?即更新图片即可:

private void button1_Click(object sender, RoutedEventArgs e)
{
    var uriSource = new Uri(@"/WPFSharpWindow;component/HotPot.png", UriKind.Relative);
    imgBackground.Source=new BitmapImage(uriSource);
}

 

原文地址:http://www.cnblogs.com/DebugLZQ/archive/2013/05/16/3081802.html

转载于:https://www.cnblogs.com/weikai/archive/2013/06/15/3137154.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值