Skip to content
This repository was archived by the owner on Jul 11, 2023. It is now read-only.

Latest commit

 

History

History
137 lines (93 loc) · 4.48 KB

developer-tools.md

File metadata and controls

137 lines (93 loc) · 4.48 KB

开发者工具

Avalonia 有一个内置的 DevTools 窗体,通过在 Window 的构造函数中调用附加的 AttachDevTools() 方法来启用该窗口。当程序在 DEBUG 模式下编译时,默认模板会开启此功能:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
}

// in auto-generated by Avalonia.NameGenerator MainWindow.g.cs:
partial class MainWindow
{
    // ...
    public void InitializeComponent(bool loadXaml = true, bool attachDevTools = true)
    {
        // ...
#if DEBUG
        if (attachDevTools)
        {
            this.AttachDevTools();
        }
#endif
        // ...
    }
}

要打开 DevTools,请按 F12,或向 this.AttachDevTools() 方法传递不同的 Gesture 以设置不同的快捷键。

{% hint style="info" %} 从 release 0.10 版本开始,要使用 DevTools,必须添加 Avalonia.Diagnostics nuget 包。

dotnet add package Avalonia.Diagnostics --version 0.10.0

{% endhint %}

在 .NET core 2.1 下运行时存在一个已知问题,即按 F12 将导致程序退出。在这种情况下,或者切换到 .NET core 2.0 或 3.0+,或者更改快捷键,例如 Ctrl+F12

Logical Tree 和 Visual Tree

Logical TreeVisual Tree 选项卡展示了控件在窗体中的逻辑树和视觉树。选中一个控件后,右侧的窗格中会显示该控件的属性,可以在这个窗格中编辑该控件的属性。

属性

允许快速查看和编辑控件的属性。还可以搜索属性(通过名称或使用正则表达式)。

列名 描述
Property 属性的名称
Value 属性的当前值
Type 当前值的类型
Priority 值的优先级

布局

允许检查和编辑常用布局属性(Margin, Border , Padding) 还显示了控件大小和大小约束。

{% hint style="info" %} 如果 WidthHeight 带下划线,则表示存在活动约束。将光标悬停在该值上可查看包含相关信息的工具提示。 {% endhint %}

样式

属性 面板显示了当前属性的活动值(active values),样式面板显示了所有值和值的来源。

此外,可以看到可能与此控件匹配的所有样式(通过切换 Show inactive 选项)。

当前样式可以通过按下 Snapshot 按钮或在悬停在目标窗口上时按下 Alt+S 记录快照。快照意味着样式面板不会随着控件的状态变化而更新。这在排除有 :pointerover:pressed 的选择器的问题时特别有用。

{% hint style="info" %} 如果赋值器的值绑定了一个资源,它将指示成一个圆圈后接资源键的形式。 {% endhint %}

{% hint style="info" %} 如果给定的值含有删除线,则表示该值被具有更高优先级的样式中的值覆盖了。 {% endhint %}

赋值器有一个上下文菜单,能够快速将名称和值复制到剪贴板。

事件

事件选项卡用来跟踪 事件 的传播。在左窗格中选择要跟踪的事件,该类型的所有事件都将显示在中上部分的窗格中。可以选择其中一个事件查看事件路由。

{% hint style="info" %} 事件名称或控件类型下面的点下划线示意可以快速导航。

  • 双击事件类型将选择并滚动到给定的事件类型
  • 双击控件类型(和/或名称)将导航到可视化树选项卡并选中该控件。 {% endhint %}

控制台

可以使用 View → Console 菜单显示控制台。控制台实现了一个 C# REPL,它可以用来运行任意的 C# 代码。在控制台会话中,可以使用以下预定义变量:

  • help: 输出帮助信息
  • e: 在逻辑树或可视化树中当前选中的控件
  • root: 视觉树的根

快捷键

按键组合 功能
Alt+S 启用快照样式
Alt+D 禁用快照样式
CTRL+Shift 通过指针定位控件
CTRL+Alt+F 冻结切换的弹出框

示例

更改属性值

更改布局属性