Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Application.Windows propriété

 

Date de publication : novembre 2016

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

Espace de noms:   System.Windows
Assembly:  PresentationFramework (dans PresentationFramework.dll)

public WindowCollection Windows { get; }

Valeur de propriété

Type: System.Windows.WindowCollection

Un WindowCollection qui contient des références à tous les objets de fenêtre en cours AppDomain.

Un Window référence est ajoutée automatiquement au Windows dès qu’une fenêtre est instanciée sur le interface utilisateur (UI) thread ; windows qui sont créés par le processus de travail threads ne sont pas ajoutés. Un Window référence est supprimée automatiquement après son Closing événement a été géré et avant son Closed événement est déclenché.

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

Cette propriété est disponible uniquement dans le thread qui a créé le Application objet.

L’exemple suivant montre comment énumérer les Windows propriété pour générer un menu Windows de niveau supérieur, qui est commun à interface multidocument (MDI) les applications telles que Microsoft Excel, ou les applications d’Interface de Document unique (SDI) plusieurs instances telles que Microsoft 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;
    }
}
<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();
        }
        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();
        }
    }
}

.NET Framework
Disponible depuis 3.0
Silverlight
Disponible depuis 5.0
Retour au début
Afficher: