跳到主要内容
版本:11.0.0

样式类(Style Classes)

你可以为 Avalonia UI 控件分配一个或多个样式类,并使用它们来指导样式选择。样式类通过在控件元素中使用 Classes 属性进行分配。如果你想分配多个类,则使用空格分隔它们。

例如,这个按钮同时应用了 h1blue 样式类:

<Button Classes="h1 blue"/>

伪类(Pseudo Classes)

与 CSS 类似,控件可以拥有伪类,这些类是在控件本身而不是用户定义的。伪类在选择器中的名称始终以冒号开头。

例如,:pointerover 伪类表示指针输入当前悬停在控件上(在控件的边界内)。(这个伪类类似于 CSS 中的 :hover。)

这是一个使用 :pointerover 伪类选择器的示例:

<StackPanel>
<StackPanel.Styles>
<Style Selector="Border:pointerover">
<Setter Property="Background" Value="Red"/>
</Style>
</StackPanel.Styles>
<Border>
<TextBlock>I will have red background when hovered.</TextBlock>
</Border>
</StackPanel>

在此示例中,伪类选择器更改了控件模板内的属性:

<StackPanel>
<StackPanel.Styles>
<Style Selector="Button:pressed /template/ ContentPresenter">
<Setter Property="TextBlock.Foreground" Value="Red"/>
</Style>
</StackPanel.Styles>
<Button>I will have red text when pressed.</Button>
</StackPanel>

其他伪类包括 :focus:disabled:pressed(用于按钮)和 :checked(用于复选框)。

信息

有关伪类的更多详细信息,请参阅参考 此处.

条件类(Conditional Classes)

如果你需要使用绑定条件添加或删除类,则可以使用以下特殊语法:

<Button Classes.accent="{Binding IsSpecial}" />

代码中的类(Classes in Code)

你可以使用 Classes 集合在代码中操作样式类:

control.Classes.Add("blue");
control.Classes.Remove("red");