Application.Windows プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アプリケーションでインスタンス化されたウィンドウを取得します。
public:
property System::Windows::WindowCollection ^ Windows { System::Windows::WindowCollection ^ get(); };
public System.Windows.WindowCollection Windows { get; }
member this.Windows : System.Windows.WindowCollection
Public ReadOnly Property Windows As WindowCollection
プロパティ値
現在の WindowCollection のすべてのウィンドウ オブジェクトへの参照を格納している AppDomain。
例
次の例では、 プロパティを列挙Windowsしてトップレベルの Windows メニューを作成する方法を示します。これは、Microsoft Excel などの複数ドキュメント インターフェイス (MDI) アプリケーションや、Microsoft Word などの複数インスタンスの単一ドキュメント インターフェイス (SDI) アプリケーションに共通です。
using System;
using System.Windows;
using System.Windows.Controls;
namespace CSharp
{
// Custom menu item that stores a reference to a window
public class WindowMenuItem : MenuItem
{
public Window Window = null;
}
}
Imports System.Windows
Imports System.Windows.Controls
Namespace VisualBasic
' Custom menu item that stores a reference to a window
Public Class WindowMenuItem
Inherits MenuItem
Public Window As Window = Nothing
End Class
End Namespace
<Window x:Class="CSharp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="CSharp" Height="300" Width="300" Activated="MainWindow_Activated"
>
<StackPanel>
<Menu>
<MenuItem Header="_File">
<MenuItem Name="newWindowMenuItem" Click="newWindowMenuItem_Click" Header="_New Window"></MenuItem>
<Separator></Separator>
<MenuItem Name="exitMenuItem" Click="exitMenuItem_Click" Header="E_xit"></MenuItem>
</MenuItem>
<MenuItem Name="windowMenuItem" Header="_Window">
</MenuItem>
</Menu>
<Canvas></Canvas>
</StackPanel>
</Window>
using System;
using System.Windows;
using System.Windows.Controls;
namespace CSharp
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
Imports System.Windows
Imports System.Windows.Controls
Namespace VisualBasic
Partial Public Class MainWindow
Inherits Window
Public Sub New()
InitializeComponent()
End Sub
void MainWindow_Activated(object sender, EventArgs e)
{
this.windowMenuItem.Items.Clear();
int windowCount = 0;
foreach (Window window in Application.Current.Windows)
{
++windowCount;
WindowMenuItem menuItem = new WindowMenuItem();
menuItem.Window = window;
menuItem.Header = "_" + windowCount.ToString() + " Window " + windowCount.ToString();
menuItem.Click += new RoutedEventHandler(menuItem_Click);
this.windowMenuItem.Items.Add(menuItem);
}
}
void menuItem_Click(object sender, RoutedEventArgs e)
{
WindowMenuItem menuItem = (WindowMenuItem)sender;
menuItem.Window.Activate();
}
}
}
Private Sub MainWindow_Activated(ByVal sender As Object, ByVal e As EventArgs)
Me.windowMenuItem.Items.Clear()
Dim windowCount As Integer = 0
For Each window As Window In Application.Current.Windows
windowCount += 1
Dim menuItem As New WindowMenuItem()
menuItem.Window = window
menuItem.Header = "_" & windowCount.ToString() & " Window " & windowCount.ToString()
AddHandler menuItem.Click, AddressOf menuItem_Click
Me.windowMenuItem.Items.Add(menuItem)
Next window
End Sub
Private Sub menuItem_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim menuItem As WindowMenuItem = CType(sender, WindowMenuItem)
menuItem.Window.Activate()
End Sub
End Class
End Namespace
注釈
Windowユーザー インターフェイス (UI) スレッドでウィンドウがインスタンス化されるとすぐに、参照が に自動的に追加Windowsされます。ワーカー スレッドによって作成されたウィンドウは追加されません。 Window参照は、そのイベントが処理された後Closing、およびイベントが発生する前に自動的にClosed削除されます。
既定では、 プロパティに追加された最初の Windows 項目は になります MainWindow。
このプロパティは、 オブジェクトを作成 Application したスレッドからのみ使用できます。
適用対象
こちらもご覧ください
.NET