2017-10-13 35 views
1

MouseOver에서 아이콘을 변경하고 싶지만 작동하지 않는 리본 단추가 있습니다.C# WPF RibbonButton MouseOver의 아이콘 변경

<RibbonButton Label="Verbindung testen" LargeImageSource="../Resources/Buttons/disconnect.png" Command="{Binding SettingsVM.TestConnectionCommand}"> 
        <RibbonButton.Style> 
         <Style TargetType="{x:Type RibbonButton}"> 
          <Style.Triggers> 
           <Trigger Property="IsMouseOver" Value="True"> 
            <Setter Property="LargeImageSource" Value="../Resources/Buttons/connect.png"/> 
           </Trigger> 
           <Trigger Property="IsMouseOver" Value="False"> 
            <Setter Property="LargeImageSource" Value="../Resources/Buttons/disconnect.png"/> 
           </Trigger> 
          </Style.Triggers> 
         </Style> 
        </RibbonButton.Style> 
</RibbonButton> 

그것은 단지 첫 번째 아이콘 "disconnect.png"를 표시하고 프로그램이 모든 다른 버튼과 같이 강조 표시됩니다를 통해 마우스,하지만 이미지 변화 :

여기 내 코드입니다.

나는 또한 그것의 ControlTemplate으로,이 방법으로 시도 : 여기

<RibbonButton Label="Verbindung testen" LargeImageSource="../Resources/Buttons/disconnect.png" Command="{Binding SettingsVM.TestConnectionCommand}"> 
<RibbonButton.Template> 
    <ControlTemplate TargetType="{x:Type RibbonButton}"> 
     <ControlTemplate.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="LargeImageSource" Value="../Resources/Buttons/connect.png"/> 
      </Trigger> 
      <Trigger Property="IsMouseOver" Value="False"> 
       <Setter Property="LargeImageSource" Value="../Resources/Buttons/disconnect.png"/> 
      </Trigger> 
     </ControlTemplate.Triggers> 
    </ControlTemplate> 
</RibbonButton.Template> 

전혀 아이콘을 보여 나던.

답변

0

답변을 찾았습니다!

WPF RibbonButton: LargeImageSource and Label not updated via DataTriggers

문제는 버튼 자체에 설정 LargeImageSource에 대한 특성과 라벨입니다. 이렇게하면 스타일 트리거에 대한 신빙성이 필요합니다. 스타일에 setter를 사용하여 기본값을 설정하고 단추의 속성 설정을 제거하는 것이 좋습니다. 버튼 자체에서 "LargeImageSource 제거"

<RibbonButton Label="Verbindung testen" Command="{Binding SettingsVM.TestConnectionCommand}"> 
<RibbonButton.Style> 
    <Style TargetType="{x:Type RibbonButton}"> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="LargeImageSource" Value="../Resources/Buttons/connect.png"/> 
      </Trigger> 
      <Trigger Property="IsMouseOver" Value="False"> 
       <Setter Property="LargeImageSource" Value="../Resources/Buttons/disconnect.png"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</RibbonButton.Style> 

:

는 그래서이어야한다.