xamarin 在MAUI中如何以及在何处实现x:Key?

yshpjwxd  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(184)

x:Key的行为就像一个附加属性,它在ResourceDictionary的子级中可用。但是,我在ResourceDictionary(repo)中找不到x:Key的实现。

问题x:Key在MAUI中是如何实现的,在哪里实现的?

vi4fp9gy

vi4fp9gy1#

x:Key以及作为xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"命名空间的一部分的其他属性是特殊的**XmlNames**,它们被构建到XAML解析器中;它们不是作为附加属性实现的。2基本上,它们几乎等同于C#中的关键字。
您可以在XmlName结构中查看它们的静态变量声明:https://github.com/dotnet/maui/blob/main/src/Controls/src/Xaml/XmlName.cs
例如,静态XmlName字段“xKey”(x:Key)在XamlParser类中引用如下:https://github.com/dotnet/maui/blob/main/src/Controls/src/Xaml/XamlParser.cs#L261
以相同方式实现的其他特殊XAML属性包括:
第一个是第五个是第一个。
x:Classx:FieldModifier也是x:命名空间的一部分,但它们是一种特殊情况。
编辑:应该提到,如果你想创建自己的一组行为相似的扩展,你可以创建一个叫做Markup Extension的东西。尽管你不能直接添加到x:命名空间。例如,x:Static是作为一个标记扩展来实现的:https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Xaml/MarkupExtensions/StaticExtension.cs

相关问题