Ho un TreeView WPF con XAML illustrato di seguito:WPF TreeView ripristina la sua attenzione dopo aver fatto doppio clic
<TreeView x:Name="twElements">
<TreeView.Resources>
<v8r:IconTypeConverter x:Key="IconConverter"/>
</TreeView.Resources>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<EventSetter Event="MouseDoubleClick" Handler="twElements_MouseDoubleClick" />
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding ChildItems}">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Icon, Converter={StaticResource IconConverter}}"/>
<TextBlock Text="{Binding Text}" Margin="3,0,0,0"/>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
Il compito è quello di aprire una qualche forma dopo aver fatto doppio clic su un elemento figlio.
code-behind per evento DoubleClick:
private void twElements_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (e.Source is TreeViewItem && ((TreeViewItem)e.Source).IsSelected)
{
e.Handled = true;
var twi = (TreeViewItem)e.Source;
var Editable = twi.Header as IEditable;
if (Editable != null)
{
Window Editor = Editable.GetEditor();
Editor.Show(); // Editor is a WPF.Window
}
}
}
Il problema: Dopo finestra desiderata si apre, sotto forma di una vista ad albero si attiva, facendo nuova finestra per andare sfondo. Come rendere la nuova finestra per rimanere attiva?
Eccellente! Funziona! –
Soluzione semplice e piacevole. Grazie ! –