専用のウィンドウからプロジェクターに関する情報を表示する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);
スタートアップフォームを起動する他の方法はありますか?コンストラクターを呼び出そうとしましたが、一部のリソースがロードされなくなったため、クラッシュが発生します。