选择器看起来与 CSS 非常相似。Avalonia 中有哪些选择器?这个选择器的含义是什么,例如:
<Style Selector="ListBoxItem:selected /template/ ContentPresenter">
<Setter Property="Background" Value="#ffffff" />
</Style>
选择器看起来与 CSS 非常相似。Avalonia 中有哪些选择器?这个选择器的含义是什么,例如:
<Style Selector="ListBoxItem:selected /template/ ContentPresenter">
<Setter Property="Background" Value="#ffffff" />
</Style>
是的,选择器与 CSS 非常相似。目前(在 0.5.0 alpha 版本)以下选择器可用。我通过示例来解释这些选择器,否则很难理解:
Button
:这会按类型选择控件,因此如果您编写选择器Button
,那么它将与Avalonia.Controls.Button
类匹配。它不会匹配派生类型 [1]:is(Button)
:这非常相似,Class
只是它也匹配派生类型Button TextBlock
:当两个选择器用空格分隔时,选择器将匹配后代,因此在这种情况下,选择器将匹配任何TextBlock
逻辑后代Button
Button > TextBlock
: 当两个选择器由 a 分隔时>
,选择器将匹配子项,因此在这种情况下,选择器将匹配任何TextBlock
直接逻辑子项Button
Button#MyButton
这将与Button
任何Name
匹配MyButton
Button.MyClass
这将匹配任何Button
与字符串MyClass
作为其条目Classes
Button:disabled
这将匹配任何Button
与:disabled
伪类Button[IsDefault=true]
:这将匹配任何Button
具有以下IsDefault
属性的true
Button /template/ ContentPresenter
这与[2]ContentPresenter
的控制模板中的 a匹配Button
[1]:请注意,对象的类型实际上是通过查看其IStyleable.StyleKey
属性来确定的,因此,如果您确实希望将继承自的控件Button
设置为 a Button
,那么您可以IStyleable.StyleKey
在类上实现 return typeof(Button)
。
[2]:这类似于/deep/
CSS 中的(现已弃用)运算符;CSS shadow DOM 是一个与控制模板非常相似的概念。