Application.MainWindow Application.MainWindow Application.MainWindow Application.MainWindow Property

定義

アプリケーションのメイン ウィンドウを取得または設定します。Gets or sets the main window of the application.

public:
 property System::Windows::Window ^ MainWindow { System::Windows::Window ^ get(); void set(System::Windows::Window ^ value); };
public System.Windows.Window MainWindow { get; set; }
member this.MainWindow : System.Windows.Window with get, set
Public Property MainWindow As Window

プロパティ値

メイン アプリケーション ウィンドウとして指定される WindowA Window that is designated as the main application window.

例外

MainWindow は、ブラウザーでホストされるアプリケーション (XAML ブラウザー アプリケーション (XBAP)XAML browser applications (XBAPs) など) から設定されます。MainWindow is set from an application that's hosted in a browser, such as an XAML ブラウザー アプリケーション (XBAP)XAML browser applications (XBAPs).

次の例は、メインアプリケーションウィンドウを検索する方法を示しています。The following example shows how to find the main application window.

// Get the main window
Window mainWindow = this.MainWindow;
' Get the main window
Dim mainWindow As Window = Me.MainWindow

次の例は、を使用MainWindowXAMLXAMLてを設定する方法を示しています。The following example shows how to set MainWindow using XAMLXAML.

<Application 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="StartupWindow.xaml"
    >
  <Application.MainWindow>
    <NavigationWindow Source="MainPage.xaml" Visibility="Visible"></NavigationWindow>
  </Application.MainWindow>
</Application>

次の例は、アプリケーションの起動時MainWindowにコード内のをインスタンス化する方法を示しています。The following example shows how to instantiate the MainWindow in code during application startup.

public partial class App : Application
{
    void App_Startup(object sender, StartupEventArgs e)
    {
        MainWindow window = new MainWindow();
        window.Show();
    }
}
Partial Public Class App
	Inherits Application
	Private Sub App_Startup(ByVal sender As Object, ByVal e As StartupEventArgs)
		Dim window As New MainWindow()
		window.Show()
	End Sub
End Class

注釈

MainWindowは、 Window AppDomainで自動的にインスタンス化される最初のオブジェクトへの参照で設定されます。MainWindow is automatically set with a reference to the first Window object to be instantiated in the AppDomain.

別のMainWindow WindowsオブジェクトをMainWindowプロパティに割り当てるように設定することによって、別のメインウィンドウを指定できます。You can specify a different main window by setting MainWindow assigning another Windows object to the MainWindow property.

オブジェクトのプロパティがにOnMainWindowClose設定されている場合は、メインウィンドウを閉じるとアプリケーションがシャットダウンします。 ShutdownMode ApplicationIf the ShutdownMode property of the Application object is set to OnMainWindowClose, closing the main window causes the application to shut down.

アプリケーションのメインウィンドウが、 MainWindowStartupUri XAMLXAMLプロパティXAMLXAMLを設定することによって生成されるウィンドウでない場合は、プロパティをから設定できます。It is possible to set the MainWindow property from XAMLXAML, if an application's main window is not the window that is produced by setting the StartupUri property in XAMLXAML. XAMLXAMLアプローチには、次の2つの制限があります。The two limitations of the XAMLXAML approach are:

  • は、 XAMLXAMLメインウィンドウNavigationWindowとしてWindowのみ、 XAMLXAMLまたはを指定できます。You can specify either a XAMLXAML-only Window or a XAMLXAML-only NavigationWindow as the main window.

  • 指定したウィンドウVisibilityのプロパティを設定する必要があります。指定しない場合は、表示されません。You must set the Visibility property of the window you specify, otherwise it won't be shown.

インスタンス化される最初Windowのオブジェクトへの参照も、最初の項目としてWindowsコレクションに追加されます。The reference to the first Window object to be instantiated is also added as the first item to the Windows collection. MainWindow後に別Windowのへの参照が設定されている場合、メインウィンドウへの参照を持つ項目の位置は変わりますが、内Windowsの項目の順序は変わりません。If MainWindow is subsequently set with a reference to a different Window, the position of the item with the reference to the main window will change, while the order of items in Windows remains the same. したがって、でMainWindowは、常にを使用して、のWindows最初の項目ではなくメインウィンドウを参照します。Consequently, always use MainWindow to refer to the main window instead of the first item in Windows.

注意

メインウィンドウがNavigationWindowで、メンバーへNavigationWindowの特定のアクセスが必要な場合は、のMainWindow値をにNavigationWindowキャストする必要があります。If the main window is a NavigationWindow, and you need specific access to NavigationWindow members, you will need to cast the value of MainWindow to NavigationWindow.

このプロパティは、 Applicationオブジェクトを作成したスレッドからのみ使用できます。This property is available only from the thread that created the Application object.

適用対象

こちらもご覧ください