Browse Source

Fix devtools selection highlight requiring direct hover over the control type or name.

pull/5949/head
Dariusz Komosinski 5 years ago
parent
commit
bd90bd9675
  1. 1
      src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml
  2. 19
      src/Avalonia.Diagnostics/Diagnostics/Views/TreePageView.xaml.cs

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

@ -20,6 +20,7 @@
<TreeView.Styles>
<Style Selector="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/>
<Setter Property="Background" Value="Transparent" />
</Style>
</TreeView.Styles>
</TreeView>

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

@ -1,3 +1,4 @@
using System.Diagnostics;
using System.Linq;
using Avalonia.Controls;
using Avalonia.Controls.Generators;
@ -6,6 +7,7 @@ using Avalonia.Diagnostics.ViewModels;
using Avalonia.Input;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
using Avalonia.VisualTree;
namespace Avalonia.Diagnostics.Views
{
@ -100,12 +102,19 @@ namespace Avalonia.Diagnostics.Views
private void TreeViewItemTemplateApplied(object sender, TemplateAppliedEventArgs e)
{
var item = (TreeViewItem)sender;
var headerPresenter = item.HeaderPresenter;
headerPresenter.ApplyTemplate();
var header = headerPresenter.Child;
header.PointerEnter += AddAdorner;
header.PointerLeave += RemoveAdorner;
// 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.PointerEnter += AddAdorner;
header.PointerLeave += RemoveAdorner;
}
item.TemplateApplied -= TreeViewItemTemplateApplied;
}
}

Loading…
Cancel
Save