首页 > 其他分享 >一步一步实现WPF透明化窗口

一步一步实现WPF透明化窗口

时间:2024-05-27 23:12:41浏览次数:23  
标签:WindowStyle 控件 窗口 一步 Window 窗体 设置 WPF 透明化

这一篇教程讲述如何实现透明窗体和透明控件,在WindowStyle设置为none情况下拖拽窗口,半透明作为较容易实现的一种美观化,对于大多数美工较弱的开发者来说实用性不错,能在一些平面化设计场合发挥简单而有效的美化效果。

 

 

实现效果1:

窗体整体半透明

 

 

 

实现效果2:

窗体全透明化,控件半透明

 

 

 

 

流程:

1.这里为演示先新建一个WPF

 

 

 

2.设置窗口属性

 

这里主要设置的是Window的WindowStyle 和 AllowsTransparency,AllowsTransparency如果为true那么WindowStyle也必须为None

 

 

 

3.设置Window的透明度

 

Alpha值为0,如果要实现上面 效果1的话可以设置为20或更高,在50-70左右我觉得是较好的可接受的透明效果)

 

 

 

 

4.设置其他控件的透明度

 

这里我加入了一个按钮为例,设置BackGround的alpha为50

 

 

 

5.添加点击窗口拖拽函数

 

刚才设置了WindowStyle为none,虽然没有边框但是也导致我们不能够关闭缩小和拖拽,因此加入鼠标点击窗体移动窗口的函数

 

在XAML文件的Window行添加 MouseLeftButtonDown="Window_MouseLeftButtonDown"

 

以及在cs文件中加入以下语句用于处理鼠标点击事件

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

 

 

 


6.加入边栏

 

因为WIndow在透明情况下点击是穿透的,需要有一个不是全透明的Grid才能启用拖拽。

如果要让软件启动时候显示在屏幕中间,则还是在Window块中加入WindowStartupLocation="CenterScreen"

 

 

 

 

 

 

7.最后添加一个 关闭按钮,点击触发函数为this.Close();

设置控件的边框颜色为白色或者白色透明Content直接填一个 × 就好

 

 

 

最终效果:

 

 

 


————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/u012388993/article/details/61614737

标签:WindowStyle,控件,窗口,一步,Window,窗体,设置,WPF,透明化
From: https://www.cnblogs.com/webenh/p/18216816

相关文章

  • WPF设置Button的Style
    扣扣技术交流群:460189483一、前言程序界面上的按钮多种多样,常用的就这几种:普通按钮、图标按钮、文字按钮、图片文字混合按钮。本文章记录了不同样式类型的按钮实现方法。下面话不多说了,来一起看看详细的介绍吧。二、固定样式的按钮固定样式的按钮一般在临时使用时或程序的样式......
  • WPF在ListView中绑定Command命令的写法
    假定:ViewModel中有一个数据源叫Persons,有一个命令叫DoCommand,通过System.Windows.Interactivity触发器绑定鼠标MouseUp事件,当UI端绑定了DataContext数据上下文之后,Command="{BindingDoCommand}"是找不到这个命令的,必须使用Binging类的RelativeSource属性先找到当前UI,再找到DataC......
  • WPF之单例模式
    项目2019/10/09 问题2019年10月9日星期三上午2:461、为了实现单例模式,在App类中添加了如下代码,使用了信号量,但是为什么返回;isNew一直为truepublicpartialclassApp:Application   {       protectedoverridevoidOnStartup(StartupEventArgs......
  • WPF DataGrid使用 自动显示行号、全选、三级联动、拖拽
    1.DataGrid的使用自动显示行号(修复删除行时行号显示不正确)  ViewCodedgTool.LoadingRow+=newEventHandler<DataGridRowEventArgs>(dgTool_LoadingRow);dgTool.UnloadingRow+=newEventHandler<DataGridRowEventArgs>(dgTool_UnloadingRow);voi......
  • WebView2在WPF中的应用
    开发环境运行环境:.Net6开发环境:VisualStudio202217.1.3框架语言:WPF安装WebView2通过PackageManager控制台安装Install-PackageMicrosoft.Web.WebView2通过Nuget包管理器安装在窗体中添加名字空间:xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;asse......
  • C# wpf之控制屏幕显示方向旋转
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Runtime.InteropServices;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Data;usingSystem.Windows.Documents......
  • 挨个配置资源组太麻烦?使用伪参数一步搞定!
    介绍伪参数伪参数是资源编排服务ROS的编排引擎提供的固定参数,即在编写模板时可以使用的一系列预定义的参数,它们为模板提供了资源部署过程中的环境和执行上下文信息。更多伪参数介绍请查看:ROS伪参数资源栈组ALIYUN::ResourceGroupId资源组是阿里云管理控制台的核心功能之一,允......
  • 使用.Net Core开发WPF App系列教程( 八、WPF中的常用控件(下))
    使用.NetCore开发WPFApp系列教程一、.NetCore和WPF介绍二、在VisualStudio2019中创建.NetCoreWPF工程三、与.NetFramework的区别四、WPF中的XAML五、WPF中的布局六、WPF中的常用控件(上)七、WPF中的常用控件(中)八、WPF中的常用控件(下)其它、实现多语言切换的几种方......
  • 方法引用(进一步简化Lambda)
    静态方法的引用格式:类名::静态方法。场景:如果某个Lambda表达式里只是调用一个静态方法,并且前后参数的形式一致,就可以使用静态方法引用。//静态方法的引用Arrays.sort(cooking,CompareByData::compareByPrice);publicclassCompareByData{publicstaticintcompar......
  • WPF implement ICommand and similar with DelegateCommand of Prism
    publicclassDelCmd:ICommand{publiceventEventHandlerCanExecuteChanged{add{CommandManager.RequerySuggested+=value;}remove{CommandManager.RequerySuggested-=......