我有一个Style,用于Button的ButtonStyle,里面有VisualStates,Properties和Triggers。我有另一种风格的BasedOn ButtonStyle。我需要访问名为" OnhoverGrid"的元素。在BasedOn样式中,改变其属性。 ButtonStyle中的ControlTemplate包含许多元素和setter。我无法使用从现有ControlTemplate复制的代码为BasedOn样式设置新模板。有没有办法可以从我的BasedOn样式触发器中访问元素OnhoverGrid?以下是样式的示例片段。
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid x:Name="RootGrid" SnapsToDevicePixels="True">
<Grid x:Name="OnhoverGrid" Opacity="0" Background="Blue">
<TextBlock Text="{TemplateBinding Content}"></TextBlock>
</Grid>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="OnhoverGrid" Property="Opacity" Value="1" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style BasedOn="{StaticResource ButtonStyle}" TargetType="{x:Type Button}">
<Setter Property="Foreground" Value="Black"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="OnhoverGrid" Property="Background" Value="Red" /><!-- Unable to access on OnhoverGrid-->
</Trigger>
</Style.Triggers>
</Style>