Xaml 选择器是Avalonia风格的吗

Xaml 选择器是Avalonia风格的吗,xaml,avaloniaui,Xaml,Avaloniaui,我有一个baseButtonStyle,它应该应用于所有按钮和所有派生类型。它适用于所有按钮(不包括派生按钮) 我如何才能得到结果,即AdditionalTextButton是由BaseButtonStyle和AdditionalTextButtonStyle设置样式的?来自AdditionalTextButtonStyle的setter应该覆盖来自BaseButtonStyle的setter。Avalonia没有直接继承样式的概念。Avalonia与WPF、UWP等最为不同的领域是其造型系统。

我有一个baseButtonStyle,它应该应用于所有按钮和所有派生类型。它适用于所有按钮(不包括派生按钮)


我如何才能得到结果,即AdditionalTextButton是由BaseButtonStyle和AdditionalTextButtonStyle设置样式的?来自AdditionalTextButtonStyle的setter应该覆盖来自BaseButtonStyle的setter。

Avalonia没有直接继承样式的概念。Avalonia与WPF、UWP等最为不同的领域是其造型系统。Avalonia的样式系统更类似于CSS

因此,要实现这一点,可以使用类

例如,假设您在XAML 3按钮中声明:

<Button />
<Button Classes="buttonStyle1" />
<Button Classes="buttonStyle1 buttonStyle2" />

然后可以添加以下样式:

<Style Selector="Button">
     <Setter Property="FontSize" Value="12" />
</Style>

<Style Selector="Button.buttonStyle1">
     <Setter Property="FontWeight" Value="Bold" />
</Style>

<Style Selector="Button.buttonStyle2">
     <Setter Property="Foreground" Value="Red" />
</Style>

通过这种方式,您可以一次编写或继承多个样式


如果要显著更改外观,还可以覆盖样式中的模板。

Avalonia没有直接继承样式的概念。Avalonia与WPF、UWP等最为不同的领域是其造型系统。Avalonia的样式系统更类似于CSS

因此,要实现这一点,可以使用类

例如,假设您在XAML 3按钮中声明:

<Button />
<Button Classes="buttonStyle1" />
<Button Classes="buttonStyle1 buttonStyle2" />

然后可以添加以下样式:

<Style Selector="Button">
     <Setter Property="FontSize" Value="12" />
</Style>

<Style Selector="Button.buttonStyle1">
     <Setter Property="FontWeight" Value="Bold" />
</Style>

<Style Selector="Button.buttonStyle2">
     <Setter Property="Foreground" Value="Red" />
</Style>

通过这种方式,您可以一次编写或继承多个样式


如果要显著更改外观,也可以在样式中覆盖模板。

问题在于您的
is
选择器语法错误。如果您将其更改为:

Selector=“:is(按钮)”

Selector=“:is(vwaui | Additionaltextbutton)”


那么这应该可以按预期工作。

问题是您的
is
选择器语法错误。如果您将其更改为:

Selector=“:is(按钮)”

Selector=“:is(vwaui | Additionaltextbutton)”


那么这应该会像预期的那样起作用。

我不认为这是完全正确的。我认为问题在于示例中的
is
选择器语法是错误的。你能确认一下@Relaxo吗?我不认为这完全是真的。我认为问题在于示例中的
is
选择器语法是错误的。你能确认一下@Relaxo吗?
<Style Selector="Button">
     <Setter Property="FontSize" Value="12" />
</Style>

<Style Selector="Button.buttonStyle1">
     <Setter Property="FontWeight" Value="Bold" />
</Style>

<Style Selector="Button.buttonStyle2">
     <Setter Property="Foreground" Value="Red" />
</Style>