2012-06-04 4 views
3

У меня есть шаблон кнопки, где ContentPresenter на самом деле является Путем.В шаблоне можно изменить триггер Path.Fill, когда Path является ContentPresenter?

На MouseOver, я хочу изменить Path.Fill.

Смотрите шаблон:

<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 является путь. Есть ли способ изменить цвет Path.Fill в XAML?

ответ

3

Все, что вам нужно сделать сейчас, это связать Путь Наполните свойство вашей собственности RepeatButton переднего плана:

Fill="{Binding Path=Foreground, RelativeSource={RelativeSource AncestorType={x:Type RepeatButton}}}" 
+0

я оказался рефакторинга, так что может быть двух разных стилей, но я думаю, что ваше решение работало бы так же, как Что ж. Жаль, что я видел это раньше. Благодаря! –