我有以下Style
:变量在XAML样式
<Style x:Key="ButtonBase" TargetType="Button">
<Setter Property="Background" Value="#FF007BFF"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value=">
<Setter Property="Background" Value="Yellow" />
<Setter Property="Foreground" Value="Black" />
</Trigger>
<Trigger Property="IsPressed" Value="False">
<Setter Property="Background" Value="#FF007BFF" />
<Setter Property="Foreground" Value="White" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Setter.Value>
</Setter>
</Style>
和继承Style
:
<Style x:Key="ElementButton" TargetType="Button" BasedOn="{StaticResource ButtonBase}">
<Setter Property="Margin" Value="10"/>
<Setter Property="Height" Value="200"/>
</Style>
我希望做的是能够在基地设置的任意变量风格:
<Setter Variable="HoverColor" Value="Pink"/>
然后,我可以使用我的触发器:
<Trigger Property="IsPressed" Value=">
<Setter Property="Background" Value="{TemplateBinding HoverColor}" />
<Setter Property="Foreground" Value="Black" />
</Trigger>
最后,然后我可以将其覆盖在我的继承方式:
<Style x:Key="ElementButton" TargetType="Button" BasedOn="{StaticResource ButtonBase}">
<Setter Property="Margin" Value="10"/>
<Setter Property="Height" Value="200"/>
<Setter Variable="HoverColor" Value="Red"/>
</Style>
有没有办法来实现这一目标?我已经看过静态资源,但这些不能被覆盖。另外,我不能使用任何需要代码隐藏的东西,因为我没有代码!
你是什么意思_“我没有一个”_ - 你的逻辑在哪里? – Blachshma
这是MVVM应用程序中仅用于xaml的视图。 – acron
好的,对于这个MVVM视图,你没有ViewModel? – Blachshma