小编Qup*_*ppa的帖子

强制DPI在WPF中进行测试

有没有办法欺骗WPF应用程序认为它在某个DPI上运行?

我想在各种DPI级别(96,120,144,192)测试我的程序,而不更改系统设置(需要在Windows 7下注销/输入).

我可以手动设置1 DIU的大小吗?(在96 DPI时,1 DIU = 1像素.我想将1 DIU设置为1.25像素以模拟120 DPI.)

wpf dpi

15
推荐指数
1
解决办法
2686
查看次数

确定托盘图标的位置

我的应用程序设计为位于系统托盘中,其行为类似于Windows 7中的网络/卷/电源/操作中心托盘项目(以及Windows Vista中的等效项目).也就是说,当单击托盘图标时它变为可见,并且当焦点丢失时变为隐藏.

该应用程序是用WPF编写的,但我目前正在使用WinForms的NotifyIcon作为托盘图标.

我想知道是否有人对如何确定应用程序托盘图标的位置(即屏幕坐标)有任何建议.默认的Windows Vista/7托盘项目有一些方法可以执行此操作,因为弹出窗口在相关托盘图标上方居中对齐.

在Vista中这不是一个问题:我将应用程序永久设置在右下角,这看起来很好(尽管没有任何逻辑包含任务栏没有放在屏幕底部的情况).但是,在Windows 7中,我的应用程序最终会遮挡新系统托盘弹出框,而不是像音量控件等一样悬停在它上面.

到目前为止,我在搜索中看到的最佳解决方案是处理NotifyIcon上的鼠标添加事件,并使用鼠标坐标来确定图标的位置.我认为如果除非有人有更好的想法,我最终会使用这种方法,尽管它并不理想,因为根据用户点击的图标内的位置,位置会略有不同.

wpf position system-tray notifyicon coordinates

7
推荐指数
2
解决办法
3109
查看次数

WPF窗口透明度(包括非客户区域)

有没有办法让WPF窗口透明而不会丢失非客户区域(边框,标题栏,关闭/最小化/最大化按钮)?

将"AllowTransparency"设置为"true"需要将"WindowStyle"设置为"None"(如本答案中所述),这将删除非客户区域.

其中一位WPF开发人员发表了关于透明窗口如何在WPF中工作的博客,以及为什么难以实现对非客户区域透明度的支持.

无论您的窗口样式如何建议,透明的WPF窗口都没有任何可见的非客户区域.这适用于许多场景,其目的是创建自定义窗口形状,但对于只想"淡入"普通窗口的人来说这可能很烦人.

因此,仅WPF解决方案似乎是不可能的.

调用本机SetLayeredWindowAttributes函数并传递WPF窗口的句柄和LWA_ALPHA没有效果,如预期的那样.

我能想到的唯一其他方法是在Win32(或可能是WinForms)窗口中托管WPF内容.但我怀疑试图这样做会导致空域问题.

WPF分层窗口在不同的操作系统上具有不同的功能...... WPF不支持透明度颜色键,因为WPF无法保证呈现您请求的确切颜色,特别是在渲染是硬件加速时.

我不确定我是否正确阅读上述内容,但听起来好像试图托管具有透明度的WPF内容是不可能的.

有任何想法吗?

透明Notepad2窗口

wpf transparency opacity

7
推荐指数
1
解决办法
4216
查看次数

为什么在HashSet中添加null不会引发异常,而在TreeSet中添加null会引发异常

为什么加nullHashSet没有抛出Exception,但添加nullTreeSet抛出异常。

Set<String>  s = new TreeSet<String>();
        s.add(null);
Run Code Online (Sandbox Code Playgroud)

抛出 NullPointerException

Set<String>  s = new HashSet<String>();
Run Code Online (Sandbox Code Playgroud)

允许Null添加值。

java hashset treeset

2
推荐指数
1
解决办法
9060
查看次数