我有以下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