Posted 16 years ago
by Andy Ver Murlen
Version: 4.5.0485
Platform: .NET 3.5
Environment: Windows Vista (32-bit)
The SelectionChanged event on a DockingWindowContainer stops firing after the last window is closed, and then new windows are added to it...
Flip between the windows, and you will see "Selection Changed" output to the output window. Close all the windows and click the add button a few times. You will no longer see the selection changed event.
<Window
x:Class="RibbonSample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:docking="http://schemas.actiprosoftware.com/winfx/xaml/docking"
Title="Window1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button Content="Add Window" Click="Button_Click" />
<Grid Grid.Row="1">
<docking:DockSite x:Name="uxDockSite_DockSite">
<docking:Workspace>
<docking:TabbedMdiHost>
<docking:TabbedMdiContainer SelectionChanged="uxTabbedMdiContainer_TabContainer_SelectionChanged">
<docking:DocumentWindow Title="One" Content="One"/>
<docking:DockingWindow Title="Two" Content="Two" />
<docking:DockingWindow Title="Three" Content="Three"/>
<docking:DockingWindow Title="Four" Content="Four"/>
</docking:TabbedMdiContainer>
</docking:TabbedMdiHost>
</docking:Workspace>
</docking:DockSite>
</Grid>
</Gri
using System;
using System.Windows;
using System.Windows.Controls;
using ActiproSoftware.Windows.Controls.Docking;
namespace RibbonSample
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1
{
public Window1()
{
InitializeComponent();
}
private void uxTabbedMdiContainer_TabContainer_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Console.WriteLine("Selection Changed");
}
private void Button_Click(object sender, RoutedEventArgs e)
{
DocumentWindow window = new DocumentWindow(uxDockSite_DockSite);
window.Title = "New Window";
window.Activate();
}
}
}