|
|
@ -25,7 +25,7 @@ namespace Avalonia.Diagnostics.ViewModels |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public event EventHandler<string>? ClipboardCopyRequested; |
|
|
public event EventHandler<string>? ClipboardCopyRequested; |
|
|
|
|
|
|
|
|
public MainViewModel MainView { get; } |
|
|
public MainViewModel MainView { get; } |
|
|
|
|
|
|
|
|
public FilterViewModel PropertiesFilter { get; } |
|
|
public FilterViewModel PropertiesFilter { get; } |
|
|
@ -117,11 +117,11 @@ namespace Avalonia.Diagnostics.ViewModels |
|
|
if (currentVisual is not null) |
|
|
if (currentVisual is not null) |
|
|
{ |
|
|
{ |
|
|
var selector = GetVisualSelector(currentVisual); |
|
|
var selector = GetVisualSelector(currentVisual); |
|
|
|
|
|
|
|
|
ClipboardCopyRequested?.Invoke(this, selector); |
|
|
ClipboardCopyRequested?.Invoke(this, selector); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void CopySelectorFromTemplateParent() |
|
|
public void CopySelectorFromTemplateParent() |
|
|
{ |
|
|
{ |
|
|
var parts = new List<string>(); |
|
|
var parts = new List<string>(); |
|
|
@ -130,7 +130,7 @@ namespace Avalonia.Diagnostics.ViewModels |
|
|
while (currentVisual is not null) |
|
|
while (currentVisual is not null) |
|
|
{ |
|
|
{ |
|
|
parts.Add(GetVisualSelector(currentVisual)); |
|
|
parts.Add(GetVisualSelector(currentVisual)); |
|
|
|
|
|
|
|
|
currentVisual = currentVisual.TemplatedParent as Visual; |
|
|
currentVisual = currentVisual.TemplatedParent as Visual; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -148,7 +148,7 @@ namespace Avalonia.Diagnostics.ViewModels |
|
|
if (SelectedNode is { } selectedNode) |
|
|
if (SelectedNode is { } selectedNode) |
|
|
{ |
|
|
{ |
|
|
ExpandNode(selectedNode); |
|
|
ExpandNode(selectedNode); |
|
|
|
|
|
|
|
|
var stack = new Stack<TreeNode>(); |
|
|
var stack = new Stack<TreeNode>(); |
|
|
stack.Push(selectedNode); |
|
|
stack.Push(selectedNode); |
|
|
|
|
|
|
|
|
@ -192,8 +192,8 @@ namespace Avalonia.Diagnostics.ViewModels |
|
|
{ |
|
|
{ |
|
|
(SelectedNode?.Visual as Control)?.BringIntoView(); |
|
|
(SelectedNode?.Visual as Control)?.BringIntoView(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void Focus() |
|
|
public void Focus() |
|
|
{ |
|
|
{ |
|
|
(SelectedNode?.Visual as Control)?.Focus(); |
|
|
(SelectedNode?.Visual as Control)?.Focus(); |
|
|
@ -205,10 +205,10 @@ namespace Avalonia.Diagnostics.ViewModels |
|
|
var classes = string.Concat(visual.Classes |
|
|
var classes = string.Concat(visual.Classes |
|
|
.Where(c => !c.StartsWith(":")) |
|
|
.Where(c => !c.StartsWith(":")) |
|
|
.Select(c => '.' + c)); |
|
|
.Select(c => '.' + c)); |
|
|
var typeName = StyledElement.GetStyleKey(visual); |
|
|
var pseudo = string.Concat(visual.Classes.Where(c => c[0] == ':').Select(c => c)); |
|
|
|
|
|
var type = StyledElement.GetStyleKey(visual); |
|
|
return $"{typeName}{name}{classes}"; |
|
|
return $$"""{{{type.Assembly.FullName}}}{{type.Namespace}}|{{type.Name}}{{name}}{{classes}}{{pseudo}}"""; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void ExpandNode(TreeNode? node) |
|
|
private void ExpandNode(TreeNode? node) |
|
|
{ |
|
|
{ |
|
|
|