首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择应用程序的显示

选择应用程序的显示
EN

Stack Overflow用户
提问于 2021-02-27 22:24:45
回答 2查看 297关注 0票数 0

背景:我的笔记本通常放在一个扩展底座上,上面连接着一个大屏幕。(WPF)应用程序的图标位于笔记本电脑屏幕上。Windows (7,64位)在笔记本显示器上打开应用程序,而不是在大显示器上。

我可以将图标移动到大显示器上,Windows将在该显示器上打开应用程序。但在启动没有连接到扩展底座的笔记本电脑后,图标又被放在笔记本电脑的显示器上(实际上我更喜欢把它放在小屏幕上)……

我找到了一些以编程方式设置应用程序主窗口位置的代码,请参阅How to set WPF window position in secondary display That works -但是:仅适用于主窗口。所有其他窗口都会在图标所在的屏幕上打开。

现在,我也可以为所有其他窗口指定位置。或者我可以编写一些代码来存储窗口关闭时的位置,同时记住屏幕(首选或其他),从而在窗口加载时根据可用屏幕重新设置它。

但这太夸张了:实际上,我只想指定窗口在大屏幕上的某个位置打开-我甚至不关心屏幕上的确切位置(Windows可以用现在的方式来确定)。

你能建议什么简单的解决方案?

EN

回答 2

Stack Overflow用户

发布于 2021-02-28 04:05:35

我建议你创建一个继承“窗口”类的新类,把你的代码放在新窗口中,然后在你所有的窗口中使用它。

示例:

代码语言:javascript
复制
using System.Windows;

namespace WpfApp2
{
    public class Custom_Window_Class : Window
    {
        // Your code to reposition window (timer ...)
    }
}

=================================

代码语言:javascript
复制
<local:Custom_Window_Class x:Class="WpfApp2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp2"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        
    </Grid>
</local:Custom_Window_Class>

======================================

代码语言:javascript
复制
namespace WpfApp2
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Custom_Window_Class
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2021-03-01 16:44:20

不幸的是,我不得不触摸每一个窗口才能把事情做好--我想称之为WTF。

如果类型为System.Windows.Window,则必须设置Owner属性及其window.WindowStartupLocation = WindowStartupLocation.CenterOwner;。同样,它指定了比我想指定的更多的细节。

对于OpenFileDialog,必须在其ShowDialog方法中提供所有者;在其Show方法中提供MessageBox

我认为对于这样一个简单的问题来说,它的代码太多了,并且必须指定比我实际想要指定的更多的代码。最后,许多WPF问题最终变成了WPF。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66399767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档