自定义WPF窗体形状的实战记录

 更新时间:2018年09月07日 09:29:54   作者:nopapp  
WPF是制作界面的一大利器,下面这篇文章主要给大家介绍了关于自定义WPF窗体形状的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们一起来看看吧

介绍

你好WPF爱好者。 随着WPF等统一API语言的发明,丰富用户界面变得非常容易。 创建丰富的用户界面只是一个想法。 您需要拥有的是创造性思维和最新技术融合。 WPF和Expression Blend在制作丰富的UI应用程序,清晰的图形和非常好的动画方面非常有用。

在创建WPF应用的时候,你第一个看到的就是窗体类。它作为窗体的基础,提供标准的边框、工具条、最大化、最小化和关闭按钮。WPF窗体是XAML文件和后台代码文件的混合体。

背景

我将要发布的是将窗口矩形形状塑造成图像的形状。 它可以是任何图像,任何形状,任何大小,它应该是没有背景的PNG(便携式网络图形)图像(白色背景被移除)。

代码使用

嗯,实现这一点是小菜一碟,但我仍然会提供一个完整的演练过程。

先决条件

  • .NET FrameWork 3.0或以上
  • Visual Studio 2008或以上
  • Adobe Photoshop或者一个图片编辑工具
  • 您要使用的图像文件
  • XAML相关知识

准备图片文件

  1. 选择要用作窗体形状的图像文件。
  2. 在大多数图像编辑工具中,使图像背景自由是一个非常简单的过程,但是,我将为Adobe Photoshop解释它(因为我喜欢该产品)。
  3. 在Adobe Photoshop中打开图像文件。
  4. 选择除背景之外的整个图像。
  5. 复制选择。
  6. 单击菜单文件>>新建。 这将显示一个对话框。 在对话框的“内容”部分中,选择“透明”,然后单击“确定”。
  7. 将打开透明背景画布,将图像粘贴到那里并将其另存为PNG文件。

现在我们的图像文件准备就绪,让我们现在塑造我们的WPF表格。

设置WPF应用

打开Visual Studio 2008并创建新项目。

在Visual C#项目模板下,选择Windows >> WPF应用。

使用下面的XAML:

<window title="ShapedWindow" windowstartuplocation="CenterScreen" 

 allowstransparency="True" opacitymask="White" windowstyle="None" 

 background="Transparent" width="620" height="267" 

 xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml 

 xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation 

 x:class="ShapedWPFForm.ShapedWindow">
 <grid>
  <img name="imgBackground" source="Shape.png" stretch="Fill" />
 </grid>
</window>

所有就完成了

XAML属性解释:

  • allowstransparency="True" - 设置窗体透明度。
  • background="Transparent" - 表明背景是透明的。
  • windowstyle="None" - 此属性删除标题栏并使窗体无边框。 基本上从窗体中删除所有系统控件。
  • opacitymask="White" - 此属性使指定的背景颜色不受窗体的影响。

完成,教程完成。 通过这样做,您可以将图像作为窗体形状。 为您的窗体赋予创意。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • Unity Shader实现素描风格的渲染

    Unity Shader实现素描风格的渲染

    这篇文章主要为大家详细介绍了Unity Shader实现素描风格的渲染,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • rsa加密算法使用示例分享

    rsa加密算法使用示例分享

    这篇文章主要介绍了rsa加密算法使用示例,代码中有注释,大家参考使用吧
    2014-01-01
  • c# 实现窗体拖到屏幕边缘自动隐藏

    c# 实现窗体拖到屏幕边缘自动隐藏

    让窗体拖到屏幕边缘自动隐藏的原理,通过Form1_LocationChanged的方法,当窗体位置发生改变时,判断其是否在屏幕边缘,在则隐藏。再通过Timer控件经过指定时间判断出鼠标的位置,若鼠标在屏幕左边、上边或右边,这根据窗体的位置,调出窗体。
    2009-02-02
  • 全面解读C#编程中的析构函数用法

    全面解读C#编程中的析构函数用法

    这篇文章主要介绍了C#编程中的析构函数用法,文中最后还整理了析构函数与Dispose()方法的区别,需要的朋友可以参考下
    2016-01-01
  • C#实现页面GZip或Deflate压缩的方法

    C#实现页面GZip或Deflate压缩的方法

    这篇文章主要介绍了C#实现页面GZip或Deflate压缩的方法,涉及C#通过GZipStream与DeflateStream实现页面压缩的相关技巧,需要的朋友可以参考下
    2015-06-06
  • C#中Predicate<T>与Func<T, bool>泛型委托的用法实例

    C#中Predicate<T>与Func<T, bool>泛型委托的用法实例

    这篇文章主要介绍了C#中Predicate<T>与Func<T, bool>泛型委托的用法,指出了其用法中的误区及易错点,有助于更好的理解泛型委托的用法,需要的朋友可以参考下
    2014-09-09
  • Unity 实现鼠标滑过UI时触发动画的操作

    Unity 实现鼠标滑过UI时触发动画的操作

    这篇文章主要介绍了Unity 实现鼠标滑过UI时触发动画的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C#中使用Spire.doc对word的操作方式

    C#中使用Spire.doc对word的操作方式

    这篇文章主要介绍了C#中使用Spire.doc对word的操作方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • C#获取ListView鼠标下的Item实例

    C#获取ListView鼠标下的Item实例

    下面小编就为大家带来一篇C#获取ListView鼠标下的Item实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • C#清理非托管对象实例分析

    C#清理非托管对象实例分析

    这篇文章主要介绍了C#清理非托管对象的方法,结合实例形式详细分析了C#清理非托管对象释放资源的相关原理与实现技巧,需要的朋友可以参考下
    2016-02-02

最新评论