在Avalonia中创建UserControl需继承UserControl类,配套XAML声明UserControl根元素并匹配x:Class,后台代码定义依赖属性和InitializeComponent(),再通过xmlns引入命名空间即可使用。

在 Avalonia 中创建 UserControl 很简单,核心是继承 UserControl 类,并用 XAML 定义界面、C# 定义逻辑。
新建 UserControl 文件
在项目中右键 → “添加” → “新建项”,选择 Avalonia User Control(如果没看到,选“类”或“空文件”,手动命名 + 添加代码)。
推荐方式:使用 Visual Studio 或 Rider 的 Avalonia 模板插件,会自动生成带 XAML 和 .cs 的配套文件,例如:
-
MyButton.xaml(XAML 界面) -
MyButton.xaml.cs(后台逻辑,继承UserControl)
XAML 中正确声明命名空间和根元素
确保 XAML 文件顶部有正确的 xmlns 声明,并以 UserControl 为根元素:
注意:x:Class 必须与 .cs 文件中的类名和命名空间完全一致。
后台代码继承 UserControl 并支持绑定
在 MyButton.xaml.cs 中,确保类继承 UserControl,并可选地定义依赖属性或绑定源:
namespace MyApp.Controls
{
public partial class MyButton : UserControl
{
public static readonly StyledProperty LabelProperty =
AvaloniaProperty.Register(nameof(Label));
public string Label
{
get => GetValue(LabelProperty);
set => SetValue(LabelProperty, value);
}
public MyButton()
{
InitializeComponent();
}
}}
php中级教程之ajax技术
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它不是新的编程语言,而是一种使用现有标准的新方法,最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容,不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。《php中级教程之ajax技术》带你快速
下载
这样你就能在父界面中像这样使用它:
其中 local 是你在父 XAML 中声明的命名空间前缀,例如:xmlns:local="using:MyApp.Controls"。
在主窗口或页面中使用 UserControl
在使用前,先在目标 XAML 文件顶部引入命名空间:
xmlns:local="using:MyApp.Controls"
然后直接当作普通控件使用,支持样式、绑定、事件等:
如果需要处理点击事件,在 .cs 中添加方法:
private void OnMyButtonClick(object sender, RoutedEventArgs e)
{
// 自定义逻辑
}基本上就这些 —— 不复杂但容易忽略命名空间和 x:Class 匹配。写完记得编译一次,Avalonia 会自动生成 InitializeComponent() 的分部实现。









