Lire en anglais

Partager via


Application.Windows Propriété

Définition

Obtient les fenêtres instanciées dans une application.

C#
public System.Windows.WindowCollection Windows { get; }

Valeur de propriété

WindowCollection qui contient des références à tous les objets de fenêtre dans le AppDomain actuel.

Exemples

L’exemple suivant montre comment énumérer la Windows propriété pour créer un menu Windows de niveau supérieur, qui est commun aux applications d’interface multidocument (MDI) comme Microsoft Excel, ou aux applications SDI (Single Document Interface) à plusieurs instance comme Microsoft Word.

C#
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;
    }
}
XAML
<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>
C#
using System;
using System.Windows;
using System.Windows.Controls;

namespace CSharp
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
C#
        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();
        }
    }
}

Remarques

Une Window référence est automatiquement ajoutée à Windows dès qu’une fenêtre est instanciée sur le thread d’interface utilisateur ; les fenêtres créées par les threads de travail ne sont pas ajoutées. Une Window référence est automatiquement supprimée une fois que son Closing événement a été géré et avant que son Closed événement ne soit déclenché.

Par défaut, le premier élément ajouté à la Windows propriété devient .MainWindow

Cette propriété est disponible uniquement à partir du thread qui a créé l’objet Application .

S’applique à

Produit Versions
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Voir aussi