【问题标题】:WPF Child Window - Remote Desktop SessionWPF 子窗口 - 远程桌面会话
【发布时间】:2011-06-02 21:06:56
【问题描述】:

我们有一个 WPF 应用程序,它有一个主窗口,以及 ShowDialog 显示的 1 个子窗口,其中 ShowInTaskBar 设置为 false。

我们在关闭时保存它们的位置,并在重新打开时设置 Window.Left 和 Top。

问题是,当您将桌面远程连接到具有多台显示器的计算机上,然后打开具有屏幕外保存位置的子窗口时,无法将其带到单台显示器上。

我们可以对子窗口进行更改以使窗口处理此问题吗?主窗口没有这个问题(我认为它可能与 ShowInTaskBar 或它是主窗口的事实有关)。

我们有没有更好的方法来存储窗口位置?

【问题讨论】:

标签: c# .net wpf remote-desktop


【解决方案1】:

在 WPF 中没有默认方式可以访问除主屏幕之外的任何可用屏幕。

WPF 确实有 SystemParameters.PrimaryScreenHeightSystemParameters.PrimaryScreenWidth 与主屏幕一起使用,但是要获取除主屏幕之外的屏幕信息,您必须使用 System.Windows.Forms.Screen 类。

如果您使用 System.Windows.Forms.Screen 类路线,您可以根据窗口所在的屏幕保存有关窗口的相关数据。然后,在读取其中的值后,您可以根据 System.Windows.Forms.Screen.AllScreens 数组中的屏幕数强制窗口显示所需的屏幕。它为您提供了放置的灵活性,因为您可以利用系统内所有可用的屏幕,而不仅仅是主屏幕。

编辑:

如果您不关心以模块化方式获取屏幕信息(每个屏幕的信息与所有可用屏幕的聚合)并且不想使用 System.Windows.Forms.Screen 类,您可以使用的SystemParameters.VirtualScreen* 属性将提供可用屏幕的聚合。

【讨论】:

  • 我认为 SystemParameters.VirtualScreenHeight 和 VirtualScreenWidth 是我需要的。我即将对此进行测试。不过,很高兴知道没有内置任何东西可以“神奇地”解决这个问题。
  • @Jonathan VirtualScreenHeight/VirtualScreenWidth 应该是所有可用屏幕的总大小,而不是通过数组的每个屏幕的隔离视图;这种方法的警告是假设两个显示器都显示相同的分辨率,并且都是 16:9 或 4:3
  • 可能导致问题的唯一方法是将窗口放置在辅助监视器上,关闭我的应用程序,然后更改该监​​视器上的分辨率。为简单起见,我宁愿不参考 WinForms 并承受 0.01% 的机会可能有人会导致此问题。我的时间还有更好的用途。
  • VirtualScreenHeight/VirtualScreenWidth 从我们今天的测试来看效果很好。我将您标记为答案,因为您确实解释了 Windows/WPF 在远程连接到 PC 时不会自动调整任何内容。
  • @Jonathan 很高兴听到它起作用了;我还将编辑我的答案以包含有关 VirtualScreenHeight/Width 的注释
【解决方案2】:

应该总是可以让任何窗口重新出现在屏幕上。以下步骤将当前活动窗口挂接到鼠标光标:

  • 按 Alt+Space 打开系统菜单
  • 按 M 表示“移动”
  • 按右箭头键
  • 现在移动鼠标

【讨论】:

  • 如果 ShowInTaskbar 设置为 false,您将如何实现这一点? Alt+Tab 菜单或任务栏中没有项目。此外,我怎么能指望任何“平民”用户知道如何做到这一点?
  • Alt+Space 调出活动窗口的系统菜单 -- ShowInTaskbar 与它无关。但是,是的,这只会对那些知道如何做的人有所帮助。
  • @Jonathan 正如乔已经说过的,这与 ShowInTaskbar 无关。当用户打开子窗口时,它成为活动窗口,即使它不在屏幕上。然后您可以执行上述步骤将其重新显示在屏幕上。
  • 您希望普通用户能够按照上述步骤操作?
  • @Jonathan 一个普通用户是的。但我完全同意你应该以编程方式解决这个问题。只是你说'没有办法把它带到单显示器上',我觉得有必要开导你:)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-05
  • 2011-07-28
相关资源
最近更新 更多