当前位置: 首页 > news >正文

WPF透明置顶窗口wine适配穿透问题解决

一、透明窗口全屏时,鼠标不穿透

问题描述

我有一个透明窗口,它是一个全屏置顶窗口,窗口里面有一个工具条,可以通过鼠标拖动工具条的位置,程序启动后,在不点击工具条的时候,鼠标是可以穿透的,当点击一次工具条后,在点击其余透明的地方,就不能穿透了

问题原因分析

通过排查,导致这个原因是窗口在初始化的时候设置了ResizeMode=“NoResize”,通过测试,设置为NoResize或者CanMinimize都存在问题

解决办法

办法1

取消窗口的ResizeMode设置或者显示设置为:CanResize或者CanResizeWithGrip

办法1遇到的问题

鼠标穿透已经没有问题了 ,但是在拖动工具条或者鼠标从工具条上经过的时候,控件呈现显示缓慢或者抖动的问题,体验很不好,重新将ResizeMode还原,则没有这个问题

办法2(正确办法)

窗口在初始化的时候,不设置ResizeMode参数,在窗口的Loaded事件里面在设置ResizeMode:

    public partial class MainWindow : Window{public MainWindow(){InitializeComponent();this.ResizeMode = ResizeMode.CanResize;this.Loaded+= OnLoaded;}private void OnLoaded(object sender, RoutedEventArgs e){this.ResizeMode = ResizeMode.NoResize;}}

通过这个方法设置后,既能解决鼠标穿透问题,也没有发现拖动问题。
备注:
WPF程序在其它一些设置也会导致初始化和Loaded事件呈现出的结果不一样,目前我已知的有着2个属性:

  • TopMost
  • ResizeMode

建议:如果需要调整这些属性,可以在Loaded事件里面再设置他们,这样可以避免一些千奇百怪的问题。

一、窗口最小化或者隐藏后,再显示后鼠标不穿透

问题描述

我有一个透明窗口,它是一个全屏置顶窗口,窗口里面有一个工具条,可以通过鼠标拖动工具条的位置,程序启动后,正常操作后,窗口穿透状态是正确的,但是当窗口最小化或者隐藏后,然后再显示后,出现了鼠标不穿透的问题。

问题原因分析

问题发现在重新显示窗口后

解决办法

目前暂时没有找到很好的解决这个问题的办法,只能采用迂回策略,在需要隐藏或者最小化窗口时,采用隐藏窗口下的控件来处理。

http://www.lryc.cn/news/398896.html

相关文章:

  • 浅析Kafka Streams中KTable.aggregate()方法的使用
  • java word转pdf、word中关键字位置插入图片 工具类
  • jail内部ubuntu apt升级失败问题解决
  • 迎接AI新时代:GPT-5的技术飞跃与未来展望
  • Snap Video:用于文本到视频合成的扩展时空变换器
  • 实验8 视图创建与管理实验
  • C++ 开源库
  • LabVIEW滤波器性能研究
  • 『C++成长记』vector模拟实现
  • 【Mac】Charles for Mac(HTTP协议抓包工具)及同类型软件介绍
  • LVS集群及其它的NAT模式
  • 【RNN练习】天气预测
  • prompt第四讲-fewshot
  • StarRocks分布式元数据源码解析
  • 阅读笔记——《Fuzz4All: Universal Fuzzing with Large Language Models》
  • 【C++】使用gtest做单元测试框架写单元测试
  • Java类与对象
  • xlwings 链接到 指定sheet 从别的 excel 复制 sheet 到指定 sheet
  • 风光摄影:相机设置和镜头选择
  • python制作甘特图的基本知识(附Demo)
  • javascript设计模式总结
  • gpt-4o看图说话-根据图片回答问题
  • 【MySQL】7.MySQL 的内置函数
  • 爬虫:Sentry-Span参数逆向
  • 音视频入门基础:H.264专题(12)——FFmpeg源码中通过SPS属性计算视频分辨率的实现
  • 基于颜色模型和边缘检测的火焰识别FPGA实现,包含testbench和matlab验证程序
  • golang json反序列化科学计数法的坑
  • 罗技K380无线键盘及鼠标:智慧互联,一触即通
  • 卸载wps office的几种方法收录
  • SpringCloud第一篇Docker基础