Application.Windows 속성

정의

애플리케이션의 인스턴스화된 창을 가져옵니다.

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 하여 Microsoft Excel과 같은 MDI(다중 문서 인터페이스) 애플리케이션 또는 Microsoft Word 같은 다중 instance SDI(단일 문서 인터페이스) 애플리케이션에 공통적인 최상위 Windows 메뉴를 빌드하는 방법을 보여 줍니다.

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 자동으로 제거됩니다.

기본적으로 속성에 추가된 첫 번째 항목은 WindowsMainWindow됩니다.

이 속성은 개체를 만든 Application 스레드에서만 사용할 수 있습니다.

적용 대상

추가 정보