Application.Windows Application.Windows Application.Windows Application.Windows Property

Определение

Возвращает созданные окна приложения.Gets the instantiated windows in an application.

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.A WindowCollection that contains references to all window objects in the current AppDomain.

Примеры

В следующем примере показано, как перечислить Windows свойство для создания меню окон верхнего уровня, которое является общим для MDImultiple-document interface (MDI) приложений, например Microsoft ExcelMicrosoft Excel, или приложений с несколькими экземплярами однодокументного интерфейса (SDI), таких как Microsoft WordMicrosoft Word.The following example demonstrates how to enumerate the Windows property to build a top-level Windows menu, which is common to MDImultiple-document interface (MDI) applications like Microsoft ExcelMicrosoft Excel, or multiple-instance Single Document Interface (SDI) applications like Microsoft WordMicrosoft Word.

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

Комментарии

Ссылка добавляется автоматически Windows сразу после создания экземпляра окна в пользовательский интерфейсuser interface (UI) потоке; окна, созданные рабочими потоками, не добавляются. WindowA Window reference is automatically added to Windows as soon as a window is instantiated on the пользовательский интерфейсuser interface (UI) thread; windows that are created by worker threads are not added. Ссылка автоматически удаляется Closing после обработки события и до Closed возникновения события. WindowA Window reference is automatically removed after its Closing event has been handled and before its Closed event is raised.

По умолчанию первый элемент, добавленный в Windows свойство, преобразуется в. MainWindowBy default, the first item added to the Windows property becomes the MainWindow.

Это свойство доступно только из потока, в котором был создан Application объект.This property is available only from the thread that created the Application object.

Применяется к

Дополнительно