Windows的刘海生成器

其实是很早之前在论坛讨论当时苹果率先推出了带刘海的 mac book pro 的时候,就花了几分钟做了一个模拟刘海的软件,可以给 Windows 系统加上刘海。

展示

详解

给Windows加上刘海,解析一下,就是需要一个黑色的窗口放置在屏幕的上边沿,并且需要设置为置顶显示,防止被别的应用盖住。

开发Windows应用,并且需要自定义窗口形状,肯定首选WPF框架,设置两个窗口,一个为设置窗口用来设置刘海的形状数据,另一个就是具体的刘海显示窗口。

刘海

上面已经解析过刘海窗口的实现原理,接着看一下具体的实现代码。首先是取消默认的窗口样式,设置 WindowStyle 属性为 None 。搭配着设置 AllowsTransparencyBackground 的值,分别为 True 和透明色。然后是设置 ShowInTaskbarFalse,取消窗口在任务状态栏的显示。最后通过设置 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>
发布时间:2025-01-18
其他阅读

未来设计趋势-Bento Layout\便当布局

前几天找网站设计的灵感的时候,发现一个介绍2024年网站设计趋势的视频,里面介绍了一个叫 Bento Layout 的趋势,今天就给大家分享一下什么是 Bento Layout,中文称为“便当布局”。

查看原文

Linux中查看,添加,修改,删除用户和用户组

将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。某个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,登录时所属的为默认组,而其他组称为附加组。本文将会介绍在 Linux 中查看,添加,修改,删除用户和用户组,注意:权限管理非常重要,可能一不小心就导致系统无法登录,请谨慎操作

查看原文

网页上通过超链接直接打开PC应用

有时候我们会发现有些网页可以直接打开本地应用,比如在百度网盘网页版下载文件时,会自动打开本地的百度网盘软件。Visual Studio Code打开浏览器认证后也会转到本地引用,Unity官网打开本地的Unity Hub应用进行Unity的下载和更新等。

查看原文

游记 | 山城重庆

最近都在忙着推进中物视的事情,还挺忙的,最近昆明的天气比较难受,工作日都是晴天,到了周末就下雨。刚好碰上在重庆有一个会议需要参加,趁着这个机会就去重庆旅游。

查看原文

C#中new和override的区别

在C#编程语言中,new 和 override 是两个重要的关键字,它们用于控制类成员方法的行为。在面向对象编程(OOP)中,理解这两个关键字的区别和用法,对于编写清晰、可维护和高效的代码至关重要。

查看原文