选择器
OfType
按类型选择控件。上面的第一个示例选择了Avalonia.Controls.Button
类。要在类型中包含XAML命名空间,请使用|
字符分隔命名空间和类型。
该选择器不匹配派生类型。要匹配派生类型,请使用Is
选择器。
注意,对象的类型实际上是通过查看其IStyleable.StyleKey
属性确定的。默认情况下,它只返回当前实例的类型,但是如果,例如,您希望从Button
继承的控件被视为Button
,那么您可以在类上实现IStyleable.StyleKey
属性,返回typeof(Button)
。
Name
按其 Name
属性选择控件,并使用#
字符。
Class
选择具有指定样式类的控件。多个类应使用.
字符分隔,对于伪类,使用:
字符。如果指定了多个类,则控件必须具有所有请求的类才能匹配。
Is
这与OfType
选择器非常相似,但它还匹配派生类型。
同样,对象的类型实际上是通过查看其IStyleable.StyleKey
属性来确定的。
Child
使用>
字符来定义子选择器。此选择器匹配_逻辑树中的直接子级_,因此在上面的示例中,选择器将匹配任何是StackPanel
的直接逻辑子级的Button
。
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
是一个整数步长,B
是一个整数偏移量,n
是非负整数,从0开始。
可以理解为_从第B
个开始的每个第A
个元素_
函数表示法示例
以下是一些使用函数表示法的示例:
:nth-child(odd)
奇数元素:1、3、5等
:nth-child(even)
偶数元素:2、4、6等
:nth-child(2n+1)
奇数元素:1(2×0+1), 3(2×1+1), 5_(2×2+1)_等,相当于:nth-child(odd)
:nth-child(2n)
偶数元素:2(2×1), 4(2×2), 6_(2×3)_等,相当于:nth-child(even)
:nth-child(3n+1)
每隔3个元素的第一个元素:1(3×0+1), 4(3×1+1), 7_(3×2+1)_等
:nth-child(3n+2)
每隔3个元素的第二个元素:2(3×0+2), 5(3×1+2), 8_(3×2+2)_等
:nth-child(3n)
每隔3个元素的第三个元素:3(3×1), 6(3×2), 9_(3×3)_等
### 在线的 nth-child & nth-last-child 测试器
您可以使用下面的链接来轻松评估nth-child
和nth-last-child
: nth-child-tester
Last updated