【发布时间】:2012-11-05 10:27:06
【问题描述】:
我有一个 WPF 应用程序,它将通过专用窗口在投影仪上显示信息。 我想配置用于投影仪显示的屏幕以及用于主应用程序窗口的屏幕。
此代码将在指定屏幕上生成投影仪输出:
var screen = GetProjectorScreen();
_projectorWindow = new ProjectorWindow();
_projectorWindow.Left = screen.WorkingArea.Left;
_projectorWindow.Top = screen.WorkingArea.Top;
_projectorWindow.Owner = _parentWindow;
_projectorWindow.Show();
public static Screen GetProjectorScreen()
{
var screens = Screen.AllScreens;
if (screens.Length > 1 && Settings.Default.DisplayScreen < screens.Length)
{
return screens[Settings.Default.DisplayScreen];
}
return screens[0];
}
我尝试用启动表单做同样的技巧,但到目前为止没有成功。 我尝试在 MainWindow 构造函数中设置 Top 和 Left 属性,但没有成功。
通过设置 StartupUri:从 App.xaml.cs 启动启动窗口:
StartupUri = new Uri("Windows/MainWindow.xaml", UriKind.Relative);
还有其他方法可以启动启动表单吗? 我试图只调用构造函数,但这会导致崩溃,因为不再加载某些资源。
【问题讨论】:
-
一个主要问题浮现在脑海中 - 您如何知道计算机上连接了投影仪?如果没有投影仪会怎样?
标签: c# wpf xaml window startup