wpf - 为应用选择显示器
问题描述
背景:我的笔记本通常放在一个扩展坞中,一个大屏幕连接到该扩展坞。(WPF) 应用程序的图标位于笔记本的屏幕上。Windows(7、64 位)在笔记本显示器而不是大显示器上打开应用程序。
我可以将图标移动到大显示器上,Windows 将在该显示器上打开应用程序。但是在启动未连接到扩展坞的笔记本电脑后,图标再次放置在笔记本电脑的显示器上(我实际上更喜欢将它放在小屏幕上)......
我找到了一些以编程方式设置应用程序主窗口位置的代码,请参阅如何在辅助显示中设置 WPF 窗口位置,但:仅适用于主窗口。所有其他窗口都在图标所在的屏幕上打开。
现在,我也可以指定所有其他窗口的位置。或者我可以编写一些代码来存储窗口关闭时的位置,同时记住屏幕(首选或其他),然后根据可用屏幕在加载窗口时重新设置它。
但这有点矫枉过正:实际上,我只想指定窗口在可用时在大屏幕上的某个位置打开 - 我什至不关心屏幕上的确切位置(Windows 可以确定它现在的方式) .
你能建议什么简单的解决方案?
解决方案
不幸的是,我不得不触摸每一个窗口才能把事情做好——我想称之为 WTF。
在 typeSystem.Windows.Window
的情况下,Owner
必须设置属性,加上它的window.WindowStartupLocation = WindowStartupLocation.CenterOwner;
. 同样,这指定了比我想指定的更多的细节。
如果是OpenFileDialog
,则必须在其ShowDialog
方法中提供所有者;MessageBox
在其Show
方法中使用,。
我认为对于这样一个简单的问题,代码太多了,而且需要指定的代码比我实际想要指定的要多得多。最后,许多 WPF 问题最终变成了 WTF。
推荐阅读
- python - 将 html 转换为 xml Python chilkat
- r - 如果交换也存在于 R 中的数据框中,则删除行
- windows - 无法在 MySQL 8 中使用 DBeaver 7 创建新列、约束、索引
- java - 如何将 JSON 转换为 Java 对象?
- python - 将 RSA 解密从 PyCrypto 迁移到 PyCryptodome
- python - 似乎无法将我从另一个文件导入的图形打印到 pdf 中
- angular - 如何选择要导入的图像以使用 `cropper.js` 插件进行操作?
- asp.net - 来自 ASP.Net (VB.Net) 贝宝的 CURL
- javascript - 如何将分治策略应用于最大和子数组问题(JavaScript)
- python - 用于获取电子邮件地址并在谷歌中搜索的 Python 代码