2016-07-29 3 views
1

DataTemplate을 사용하여 일부 단추에 사용자 지정보기 (이미지, 텍스트 등)가 표시됩니다.DataTemplate의 단추에 대한 MouseOver 효과

<DataTemplate DataType="{x:Type viewModel:ActionItem}"> 

    <Button Background="SlateGray" Command="{Binding Command}"> 
     <Button.Style> 
      <Style TargetType="{x:Type Button}"> 
       <Setter Property="Background" Value="Green"/> 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate TargetType="{x:Type Button}"> 
          <Border Background="{TemplateBinding Background}"> 
           <ContentPresenter /> 
          </Border> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
       <Style.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="Background" Value="DarkGoldenrod"/> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </Button.Style> 

     <TextBlock Text="{Binding Name}" /> 

    </Button> 

</DataTemplate> 

왜 효과 위에 마우스가 전혀 작동하지 않습니다 : 다음은 간단한 예입니다?

+0

같은 템플릿 수준에서 트리거를 설정하십시오 : 관련 대답은 이미 할 컨트롤 템플릿을 사용하도록 알려줍니다. – nabulke

답변

2

Background="SlateGray"은 스타일에서 트리거 할 수있는 모든 것을 무시합니다. 그 비트를 제거하면 제대로 작동합니다.

+0

그럴 필요는 없습니다. 트리거가 작동 할 때 bcos가 일시적으로 트리거에서 설정 한 값으로 현재 컨트롤 스타일을 무시합니다. – suulisin

+0

@Pamparanpa 컨트롤 스타일에 설정되어 있지 않습니다. DP가 직접 설정됩니다. 나를 믿어. Btw : 당신과 같은 이유로 작동하지 않습니다. –

+0

@Manfred : 당신 말이 맞았습니다, 바보 같아요 ... 도와 줘서 고마워요. – nabulke

0

S.Akbari @

<DataTemplate DataType="{x:Type viewModel:ActionItem}"> 

    <Button Background="SlateGray" Command="{Binding Command}"> 
     <Button.Style> 
      <Style TargetType="{x:Type Button}"> 
       <Setter Property="Background" Value="Green"/> 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate TargetType="{x:Type Button}"> 
          <Border Background="{TemplateBinding Background}"> 
           <ContentPresenter /> 
          </Border> 

       <ControlTemplate.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="Background" Value="DarkGoldenrod"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 

      </Style> 
     </Button.Style> 

     <TextBlock Text="{Binding Name}" /> 

    </Button> 

</DataTemplate> 
관련 문제