如何在.NET Maui代码中为控件设置类似Xaml的x:Name名称?
在.NET Maui代码中设置控件的“名称”(对应Xaml的x:Name)
在Xaml里的x:Name本质是让编译器自动生成对应名称的后台字段,方便你在代码中引用控件。用代码创建控件时,你可以通过两种方式实现类似效果:
1. 直接使用变量名(最常用高效)
你代码里定义的button变量本身就相当于Xaml里x:Name="button"生成的字段,直接通过这个变量就能访问和操作控件:
Button button = new Button { Text = "Click to Rotate Text!", VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center }; // 直接通过变量操作控件 button.Clicked += (s, e) => { /* 处理点击逻辑 */ };
2. 设置控件的Name属性(用于可视化树查找)
如果需要给控件设置一个可用于全局查找的名称(和Xaml的x:Name完全对应),可以直接设置控件的Name属性:
Button button = new Button { Text = "Click to Rotate Text!", VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, Name = "RotateButton" // 对应Xaml的x:Name="RotateButton" }; // 后续可通过页面的FindByName方法查找该控件 var targetButton = this.FindByName<Button>("RotateButton");
另外如果是用于自动化测试或辅助功能标识,更推荐使用AutomationId属性,它不会和可视化树的名称查找逻辑冲突:
Button button = new Button { Text = "Click to Rotate Text!", VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, AutomationId = "RotateTextButton" };
内容的提问来源于stack exchange,提问作者Dxa96
相关产品推荐
相关产品推荐

