Wpf 在模板中,我是否可以触发更改路径。当路径为ContentPresenter时填充?
我有一个按钮模板,其中ContentPresenter实际上是一个路径 在鼠标悬停时,我想更改Path.Fill 请参见模板:Wpf 在模板中,我是否可以触发更改路径。当路径为ContentPresenter时填充?,wpf,templates,contentpresenter,Wpf,Templates,Contentpresenter,我有一个按钮模板,其中ContentPresenter实际上是一个路径 在鼠标悬停时,我想更改Path.Fill 请参见模板: <Style x:Key="spinButtonStyle" TargetType="{x:Type RepeatButton}"> <Setter Property="Template"> <Setter.Value> <ControlTempla
<Style x:Key="spinButtonStyle" TargetType="{x:Type RepeatButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Border x:Name="Bd" BorderThickness="0" Background="Transparent" CornerRadius="2">
<ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="Bd" Value="#666666"/>
<Setter Property="Control.Foreground" Value="#999999"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<RepeatButton Style="{StaticResource spinButtonStyle}">
<Path blah blah blah/>
</RepeatButton>
以及使用此模板的代码:
<Style x:Key="spinButtonStyle" TargetType="{x:Type RepeatButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Border x:Name="Bd" BorderThickness="0" Background="Transparent" CornerRadius="2">
<ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="Bd" Value="#666666"/>
<Setter Property="Control.Foreground" Value="#999999"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<RepeatButton Style="{StaticResource spinButtonStyle}">
<Path blah blah blah/>
</RepeatButton>
现在,在本例中,ContentPresenter是一个路径。是否有任何方法可以更改XAML中的Path.Fill颜色?现在需要做的就是将Path Fill属性绑定到RepeatButton前景属性:
Fill="{Binding Path=Foreground, RelativeSource={RelativeSource AncestorType={x:Type RepeatButton}}}"
我最终重构了两种不同的风格,但我认为你的解决方案也同样有效。但愿我早点看到。谢谢