做了一个适用于Windows的刘海生成器
其实是很早之前在论坛讨论当时苹果率先推出了带刘海的 mac book pro 的时候,就花了几分钟做了一个模拟刘海的软件,可以给 Windows 系统加上刘海。
展示
详解
给Windows加上刘海,解析一下,就是需要一个黑色的窗口放置在屏幕的上边沿,并且需要设置为置顶显示,防止被别的应用盖住。
开发Windows应用,并且需要自定义窗口形状,肯定首选WPF框架,设置两个窗口,一个为设置窗口用来设置刘海的形状数据,另一个就是具体的刘海显示窗口。
刘海
上面已经解析过刘海窗口的实现原理,接着看一下具体的实现代码。首先是取消默认的窗口样式,设置 WindowStyle
属性为 None
。搭配着设置 AllowsTransparency
和 Background
的值,分别为 True
和透明色。然后是设置 ShowInTaskbar
为 False
,取消窗口在任务状态栏的显示。最后通过设置 Topmost
属性来将窗口置顶显示。
窗口内部通过 Border
组件来构建自定义形状,通过设置 CornerRadius
属性来设置窗口的圆角。关于圆角可以查看这篇文章
如果为了逼真的效果,还可以考虑在窗口内部显示摄像头的图片来增加真实效果
<Window x:Class="Demo.XWindow"
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"
xmlns:local="clr-namespace:Demo"
WindowStyle="None"
AllowsTransparency="True"
Background="Transparent"
mc:Ignorable="d"
Loaded="Window_Loaded"
ShowInTaskbar="False"
Topmost="True"
Title="刘海" Height="50" Width="200">
<Border Margin="4,0,4,4" Background="Black" CornerRadius="0,0,10,10">
</Border>
</Window>