我试图为我的MAUI项目创建一个自定义控件,并遵循以下示例:https://www.mfractor.com/blogs/news/custom-controls-in-xamarin-forms
但是当我使用给定的xaml时,它是无效的:
<?xml version="1.0" encoding="utf-8" ?>
<Grid xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyProject.Controls.MyActivityIndicator"
xmlns:local="clr-namespace:MyProject"
HorizontalOptions="FillAndExpand"
x:Name="this">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label x:Name="LoadingLabel" FontAttributes="Bold" Grid.Row="0" HorizontalOptions="CenterAndExpand" />
<ActivityIndicator x:Name="ActivityIndicator" Grid.Row="1" HorizontalOptions="CenterAndExpand" />
</Grid>
我得到错误消息:
未找到类型“Grid”。请验证没有缺少程序集引用,并且已生成所有引用的程序集。
Visual Studio建议添加maui命名空间:
xmlns:maui="http://schemas.microsoft.com/dotnet/2021/maui/design"
然后它将识别所有使用的控件,但我不能使用Grid.Row属性:
在类型“Grid”中未找到可附加属性“Row”。
2条答案
按热度按时间egmofgnx1#
你的代码中有两个问题:
1.错误的命名空间(您已经修复了)
1.未在代码隐藏中修复继承的类
下面是自定义控件的完整代码,使用
Grid
作为根元素是没有问题的35g0bw712#
错误消息的根本原因是xaml中来自maui和xamarin的混合命名空间。
在清理命名空间使其只包含maui命名空间之后,这些控件被识别出来。
但是错误“The attachable property 'Row' was not found in type 'Grid'.”仍然存在。似乎你不能使用Grid作为根元素。在ContentView控件中包含网格后,一切正常。