2013-09-22 5 views
2

Во время чтения в WPF у меня возникла проблема с попыткой создать привязку к Trigger в шаблоне, используемом для создания кнопки изображения.Trigger не имеет связующего свойства

<ControlTemplate x:Key="ToolbarButtonHover" TargetType="Button"> 
    <Grid Name="backgroundGrid"> 
     <Image Source="{DynamicResource ResourceKey=Img}" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}"></Image> 
    </Grid> 
    <ControlTemplate.Triggers> 
     <Trigger Property="Button.IsPressed" Value="True"> 
      <Setter TargetName="backgroundGrid" Property="Background" Value="#007ACC" /> 
     </Trigger> 
     <!--Error: The property 'Binding' was not found in type Trigger--> 
     <Trigger Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource TemplatedParent}}" Value="True"> 
      <Setter TargetName="backgroundGrid" Property="Background" Value="Red" /> 
     </Trigger> 
    </ControlTemplate.Triggers> 
</ControlTemplate> 

Результаты в Error The property 'Binding' was not found in type Trigger, более конкретно, его нитевидные <Trigger Binding="{ Path=IsMouseOver, RelativeSource={RelativeSource TemplatedParent}}" Value="True">, который генерирует его.

В чем причина этой ошибки?

ответ

10

Возможно, потому что нет свойства связывания на классе триггеров as you can see here.

Возможно, вы ищете DataTrigger.

<ControlTemplate x:Key="ToolbarButtonHover" TargetType="Button"> 
    <Grid Name="backgroundGrid"> 
     <Image Source="{DynamicResource ResourceKey=Img}" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}"></Image> 
    </Grid> 
    <ControlTemplate.Triggers> 
     <Trigger Property="Button.IsPressed" Value="True"> 
      <Setter TargetName="backgroundGrid" Property="Background" Value="#007ACC" /> 
     </Trigger> 
     <!--Look below, DataTrigger --> 
     <DataTrigger Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource TemplatedParent}}" Value="True"> 
      <Setter TargetName="backgroundGrid" Property="Background" Value="Red" /> 
     </Trigger> 
    </ControlTemplate.Triggers> 
</ControlTemplate> 
+0

Thanks! Все сделано без конвертера! –

Смежные вопросы