2013-09-22 4 views
2

WPF에서 읽는 동안 이미지 단추를 만드는 데 사용되는 템플릿의 트리거에 바인딩을 만들려고 할 때 문제가 발생했습니다. 오류 The property 'Binding' was not found in type 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> 

결과, 더 구체적으로는 라인을 생성 <Trigger Binding="{ Path=IsMouseOver, RelativeSource={RelativeSource TemplatedParent}}" Value="True">가.

이 오류의 이유는 무엇입니까?

답변

10

아마도 Trigger 클래스에 Binding 속성이 없으므로 입니다.

아마 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

고마워요! 모두 변환기 없이도 끝났습니다! –