|
|
@ -1,3 +1,4 @@ |
|
|
|
|
|
using System.Diagnostics; |
|
|
using System.Linq; |
|
|
using System.Linq; |
|
|
using Avalonia.Controls; |
|
|
using Avalonia.Controls; |
|
|
using Avalonia.Controls.Generators; |
|
|
using Avalonia.Controls.Generators; |
|
|
@ -6,6 +7,7 @@ using Avalonia.Diagnostics.ViewModels; |
|
|
using Avalonia.Input; |
|
|
using Avalonia.Input; |
|
|
using Avalonia.Markup.Xaml; |
|
|
using Avalonia.Markup.Xaml; |
|
|
using Avalonia.Media; |
|
|
using Avalonia.Media; |
|
|
|
|
|
using Avalonia.VisualTree; |
|
|
|
|
|
|
|
|
namespace Avalonia.Diagnostics.Views |
|
|
namespace Avalonia.Diagnostics.Views |
|
|
{ |
|
|
{ |
|
|
@ -100,12 +102,19 @@ namespace Avalonia.Diagnostics.Views |
|
|
private void TreeViewItemTemplateApplied(object sender, TemplateAppliedEventArgs e) |
|
|
private void TreeViewItemTemplateApplied(object sender, TemplateAppliedEventArgs e) |
|
|
{ |
|
|
{ |
|
|
var item = (TreeViewItem)sender; |
|
|
var item = (TreeViewItem)sender; |
|
|
var headerPresenter = item.HeaderPresenter; |
|
|
|
|
|
headerPresenter.ApplyTemplate(); |
|
|
|
|
|
|
|
|
|
|
|
var header = headerPresenter.Child; |
|
|
// This depends on the default tree item template.
|
|
|
header.PointerEnter += AddAdorner; |
|
|
// We want to handle events in the item header but exclude events coming from children.
|
|
|
header.PointerLeave += RemoveAdorner; |
|
|
var header = item.FindDescendantOfType<Border>(); |
|
|
|
|
|
|
|
|
|
|
|
Debug.Assert(header != null); |
|
|
|
|
|
|
|
|
|
|
|
if (header != null) |
|
|
|
|
|
{ |
|
|
|
|
|
header.PointerEnter += AddAdorner; |
|
|
|
|
|
header.PointerLeave += RemoveAdorner; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
item.TemplateApplied -= TreeViewItemTemplateApplied; |
|
|
item.TemplateApplied -= TreeViewItemTemplateApplied; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|