Application.Windows Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene le finestre di cui è stata creata un'istanza in un'applicazione.
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
Valore della proprietà
Oggetto WindowCollection contenente riferimenti a tutti gli oggetti finestra nell'oggetto AppDomain corrente.
Esempio
Nell'esempio seguente viene illustrato come enumerare la Windows proprietà per creare un menu Windows di primo livello, che è comune alle applicazioni MDI (Multiple Document Interface) come Microsoft Excel o applicazioni SDI (Single Document Interface) a più istanze, ad esempio 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;
}
}
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
Commenti
Un Window riferimento viene aggiunto automaticamente a Windows non appena viene creata un'istanza di una finestra nel thread dell'interfaccia utente. Le finestre create dai thread di lavoro non vengono aggiunte. Un Window riferimento viene rimosso automaticamente dopo Closing che l'evento è stato gestito e prima che venga generato l'evento Closed .
Per impostazione predefinita, il primo elemento aggiunto alla Windows proprietà diventa MainWindow.
Questa proprietà è disponibile solo dal thread che ha creato l'oggetto Application .