选择器
OfType
按类型选择控件。上面的第一个示例选择Avalonia.Controls.Button
类。若要在类型中引用XAML命名空间,请使用|
字符分隔命名空间和类型。
此选择器不会匹配派生类。想要实现派生类匹配请使用Is
选择器。
注意:对象的类型实际上是通过查看其IStyleable.StyleKey
属性来确定的。默认情况下,这只是返回当前实例的类型,但如果例如您确实希望从Button
继承的控件样式为Button
,则可以在类上实现IStyleable.StyleKey
属性以返回typeof(Button)
。
Name
使用#
字符按控件的Name
属性选择一个控件。
Class
选择一个具有指定样式类的控件。多个类用.
字符分开,如果是伪类则用:
字符。如果指定了多个样式类,那么控件必须有所有必要的样式类才能够匹配。
Is
这与OfType
选择器非常相似,只是它也匹配派生类型。
同样,对象的类型实际上是通过查看其IStyleable.StyleKey
属性来确定的。
Child
Child选择器是通过用>
字符分隔两个选择器来定义的。此选择器匹配逻辑树中的直接子元素,因此在上面的例子中,选择器将匹配作为StackPanel
的直接逻辑子元素的任何Button
。
Descendant
当两个选择器用空格分隔时,选择器将匹配逻辑树中的后代(Descendant),因此在这种情况下,选择器将与作为StackPanel
逻辑后代的任何Button
匹配。
PropertyEquals
匹配将某个具体属性设置为某个具体值的所有控件。
注意: 在XAML内部的选择器中使用AttachedProperty
时,必须用小括号包装。
注意: 在XAML中使用选择器时,属性必须支持TypeConverter
Template
匹配控件模板中的控件。这里列出的所有其他选择器都作用在逻辑树上。如果要在控件模板中选择控件,则必须使用此选择器。该示例选择Button
模板中的ContentPresenter
控件。
Not
取反内部选择器。
Or
查找任意一个与这些选择器中匹配的元素。每个选择器用,
分开。
Nth Child
根据元素在一组邻近元素中的位置来匹配。
Nth Last Child
根据元素在一组邻近元素中的位置来匹配,从末端开始计算。
Nth Child and Nth Last Child Syntax
:nth-child()
和:nth-last-child()
需要一个参数用以描述一个模式,这个模式用于匹配邻近列表中的元素索引。元素索引数是从1开始的。下面的例子使用:nth-child()
,但这条规则也适用于:nth-last-child()
。
关键字符号
odd
代表在一系列邻近元素中索引为奇数的元素:1、3、5...。
even
代表在一系列邻近元素中索引为偶数的元素:2、4、6...。
功能符号
An+B
代表一个列表中的元素,其索引数与An+B定义的自定义数字模式中找到的索引一致,其中:
A
是整数,代表步长(step size)。B
是整数,代表偏移量(offset)。n
是所有从0开始的非负整数。
这可以这样理解: 从B
开始的每第A
个元素。
功能符号示例
线上 nth-child 和 nth-last-child 测试工具
通过下面的网站可以很容易地测试nth-child
和nth-last-child
。 nth-child-tester
最后更新于