Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad Application.Windows

 

Publicado: octubre de 2016

Obtiene las instancias de windows en una aplicación.

Espacio de nombres:   System.Windows
Ensamblado:  PresentationFramework (en PresentationFramework.dll)

public WindowCollection Windows { get; }

Valor de propiedad

Type: System.Windows.WindowCollection

Un WindowCollection que contiene referencias a todos los objetos de ventana actual AppDomain.

Un Window referencia se agrega automáticamente a Windows en cuanto se crea una instancia de una ventana en la interfaz de usuario (UI) subproceso; windows creados por no se agregan los subprocesos de trabajo. Un Window referencia se elimina automáticamente después de su Closing se controló el evento y antes de su Closed provoca el evento.

De forma predeterminada, el primer elemento agregado a la Windows propiedad pasa a ser la MainWindow.

Esta propiedad sólo está disponible desde el subproceso que creó el Application objeto.

En el ejemplo siguiente se muestra cómo enumerar los Windows propiedad para crear un menú de Windows de nivel superior, que es común a interfaz de múltiples documentos (MDI) aplicaciones como Microsoft Excel, o aplicaciones de interfaz de único documento (SDI) de varias instancias, como 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 desde 3.0
Silverlight
Disponible desde 5.0
Volver al principio
Mostrar: