Avalonia UserControl (用户控件)

ava中的用户控件和wpf中的作用一致
一般用来制作页面

新建一个页面

<UserControl
...
>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="这是一个用户控件" />
<Button Name="btn1" Content="按钮" />
</StackPanel>
</UserControl>

在页面的后台代码中根据名字获取控件

var btn1 = this.FindControl<Button>("btn1");
btn1.Click += (s, e) =>
{
btn1.Content = Guid.NewGuid().ToString();
};

在主窗口中引用用户控件
using后跟上控件的命名空间

xmlns:local="using:AvaloniaApplication2"
<Panel>
<local:UserControl1 />
</Panel>

2024.10.26 一些新发现

<!-- 上面的 x:DataType 用于编译时绑定 -->
<!-- 这里的 UserControl.DataContext 用于设计器和运行后指定vm -->
<!-- 如果这里不指定 DataContext ,那么他会尝试寻找嵌套的父窗口的vm,会直接报错,因为vm类型不一致 -->
<!-- 如果不在这里指定,那也要在后台代码里指定 -->
<Design.DataContext>
<vm:UserControl1ViewModel />
</Design.DataContext>
posted @   trykle  阅读(289)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示