Browse Source

Fix adorners in DevTools.

pull/9677/head
Steven Kirk 4 years ago
parent
commit
54bc9ddeeb
  1. 4
      src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml
  2. 26
      src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs

4
src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml

@ -11,7 +11,9 @@
<TreeView.DataTemplates>
<TreeDataTemplate DataType="vm:TreeNode"
ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal" Spacing="8">
<StackPanel Orientation="Horizontal" Spacing="8"
PointerEntered="AddAdorner"
PointerExited="RemoveAdorner">
<TextBlock Text="{Binding Type}" FontWeight="{Binding FontWeight}"/>
<TextBlock Text="{Binding Classes}"/>
<TextBlock Foreground="Gray" Text="{Binding ElementName}"/>

26
src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs

@ -21,7 +21,6 @@ namespace Avalonia.Diagnostics.Views
{
InitializeComponent();
_tree = this.GetControl<TreeView>("tree");
////_tree.ItemContainerGenerator.Index!.Materialized += TreeViewItemMaterialized;
_adorner = new Panel
{
@ -102,30 +101,5 @@ namespace Avalonia.Diagnostics.Views
{
AvaloniaXamlLoader.Load(this);
}
////private void TreeViewItemMaterialized(object? sender, ItemContainerEventArgs e)
////{
//// var item = (TreeViewItem)e.Containers[0].ContainerControl;
//// item.TemplateApplied += TreeViewItemTemplateApplied;
////}
private void TreeViewItemTemplateApplied(object? sender, TemplateAppliedEventArgs e)
{
var item = (TreeViewItem)sender!;
// This depends on the default tree item template.
// We want to handle events in the item header but exclude events coming from children.
var header = item.FindDescendantOfType<Border>();
Debug.Assert(header != null);
if (header != null)
{
header.PointerEntered += AddAdorner;
header.PointerExited += RemoveAdorner;
}
item.TemplateApplied -= TreeViewItemTemplateApplied;
}
}
}

Loading…
Cancel
Save