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事件里面再设置他们,这样可以避免一些千奇百怪的问题。

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

问题描述

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

问题原因分析

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

解决办法

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

相关推荐

  1. WPF透明窗口wine穿透问题解决

    2024-07-13 00:24:01       23 阅读
  2. qt窗口

    2024-07-13 00:24:01       23 阅读
  3. Android状态栏问题

    2024-07-13 00:24:01       18 阅读
  4. Xcode15升级问题记录

    2024-07-13 00:24:01       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 00:24:01       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 00:24:01       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 00:24:01       57 阅读
  4. Python语言-面向对象

    2024-07-13 00:24:01       68 阅读

热门阅读

  1. qt explicit 啥意思

    2024-07-13 00:24:01       26 阅读
  2. 【spring boot项目】mybatis-plus配置类

    2024-07-13 00:24:01       20 阅读
  3. Unity3D中UI层级改变详解

    2024-07-13 00:24:01       24 阅读
  4. Gunicorn多进程指南:让Web应用跑得更快

    2024-07-13 00:24:01       21 阅读
  5. 深入探索Vite的热更新(HMR)实现

    2024-07-13 00:24:01       23 阅读
  6. springboot中抽离日志

    2024-07-13 00:24:01       18 阅读
  7. 《C++并发编程实战》笔记(一、二)

    2024-07-13 00:24:01       20 阅读
  8. 极速目标检测:算法加速的策略与实践

    2024-07-13 00:24:01       18 阅读
  9. hnust 2184: huffman编码(1)

    2024-07-13 00:24:01       23 阅读
  10. Python爬虫教程第6篇-使用session发起请求

    2024-07-13 00:24:01       19 阅读
  11. uniapp js 用dom创建form表单 并提交

    2024-07-13 00:24:01       19 阅读