2017-10-13 20 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> 

それがすべてでアイコンが表示さdoesntの。

答えて

0

答えを見つけました!

WPF RibbonButton: LargeImageSource and Label not updated via DataTriggers

問題は、ボタン自体にLargeImageSourceとラベルのためにあなたの設定のプロパティです。これを行うと、あなたのスタイルのトリガーに対するプレディジョンが発生します。スタイルのセッターを使ってデフォルトを設定し、ボタンのプロパティ設定を削除することをお勧めします。ボタン自体から "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> 

だからそれがなければなりません。

関連する問題