Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

Activate window, close window, bring window to front

<Window x: Class="WpfApplication1.Window1"   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   xmlns:system="clr-namespace:System.Windows;assembly=PresentationFramework"   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   Title="Main Window" Height="310" Width="280" Loaded="Window1_Loaded">   <Window.Resources>     <DataTemplate DataType="{x:Type Window}" x:Key="WindowTemplate">       <StackPanel>         <Rectangle Height="50" Width="50">           <Rectangle.Fill>             <VisualBrush Visual="{Binding}" />           </Rectangle.Fill>         </Rectangle>         <TextBlock Text="{Binding Path=Title}" />       </StackPanel>     </DataTemplate>   </Window.Resources>   <Grid>     <Grid.RowDefinitions>       <RowDefinition Height="100" />       <RowDefinition Height="*" />     </Grid.RowDefinitions>     <ListBox x:Name="lbxWindows" ItemTemplate="{StaticResource WindowTemplate}">       <ListBox.ItemsPanel>         <ItemsPanelTemplate>           <WrapPanel />         </ItemsPanelTemplate>       </ListBox.ItemsPanel>     </ListBox>     <StackPanel Grid.Row="1">       <CheckBox x:Name="cbxIsVisibleInTaskBar" Content="IsVisibleInTaskbar" IsChecked="{Binding ElementName=lbxWindows, Path=SelectedItem.ShowInTaskbar}"/>       <CheckBox x:Name="cbxIsVisible" Content="IsVisible"        IsChecked="{Binding ElementName=lbxWindows, Path=SelectedItem.IsVisible, Mode=OneWay}"        Checked="CheckBox_Checked_Changed"          Unchecked="CheckBox_Checked_Changed"/>       <CheckBox x:Name="cbxCanClose" Content="CanClose" IsChecked="True"/>       <Button Content="Bring To Front" Click="btnBringToFront_Click" />       <Button Content="Close" Click="btnClose_Click"/>     </StackPanel>   </Grid> </Window> //File:Window.xaml.vb Imports System Imports System.Collections.Generic Imports System.ComponentModel Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Documents Imports System.Windows.Media Namespace WpfApplication1   Public Partial Class Window1     Inherits Window     Public Sub New()       InitializeComponent()     End Sub     Private Sub Window1_Loaded(sender As Object, e As RoutedEventArgs)       For i As Integer = 1 To 5         Dim window As New Window()         SetupWindow(window, "Window " & i)         window.Show()       Next       RebuildWindowList()     End Sub     Private Sub SetupWindow(window As Window, title As String)       AddHandler window.Closing, New CancelEventHandler(AddressOf Window_Closing)       AddHandler window.Closed, New EventHandler(AddressOf Window_Closed)       window.Title = title       window.Width = 100.0       window.Height = 100.0       window.Content = title     End Sub     Private Sub RebuildWindowList()       Dim windows As New List(Of Window)()       For Each window As Window In Application.Current.Windows         If window Is Me Then           Continue For         End If         windows.Add(window)       Next       lbxWindows.ItemsSource = windows     End Sub     Private Sub Window_Closed(sender As Object, e As EventArgs)       RebuildWindowList()     End Sub     Private Sub Window_Closing(sender As Object, e As CancelEventArgs)       Dim w As Window = TryCast(sender, Window)       If w Is Nothing Then         Return       End If       e.Cancel = Not cbxCanClose.IsChecked = True     End Sub     Private Sub CheckBox_Checked_Changed(sender As Object, e As RoutedEventArgs)       Dim window As Window = TryCast(lbxWindows.SelectedItem, Window)       If window Is Nothing Then         Return       End If       If cbxIsVisible.IsChecked = True Then         window.Show()       Else         window.Hide()       End If     End Sub     Private Sub btnBringToFront_Click(sender As Object, e As RoutedEventArgs)       Dim window As Window = TryCast(lbxWindows.SelectedItem, Window)       If window IsNot Nothing Then         window.Activate()       End If     End Sub     Private Sub btnClose_Click(sender As Object, e As RoutedEventArgs)       Dim window As Window = TryCast(lbxWindows.SelectedItem, Window)       If window IsNot Nothing Then         window.Close()       End If     End Sub   End Class End Namespace