2016-04-07 9 views
1

Ich habe eine Umschaltfläche in WPF erstellt. Jeder Zustand wird durch ein Bild repräsentiert. Es sieht wie folgt aus:Wie Tooltips je nach Zustand des Togglebuttons gesetzt werden, WPF

<ToggleButton Click="ButtonEnable_Click" x:Name="ButtonEnable" Width="36" Height="36" ToolTipService.ShowOnDisabled="true" > 
    <ToggleButton.Resources> 
     <BitmapImage x:Key="imgNormal" UriSource="/Project;component/Resources/images/Image-active.png"/> 
     <BitmapImage x:Key="imgChecked" UriSource="/Project;component/Resources/images/Image-inactive.png"/> 
    </ToggleButton.Resources> 
    <ToggleButton.Style> 
     <Style TargetType="ToggleButton"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="ToggleButton"> 
         <Image x:Name="PART_Image" Source="{StaticResource imgNormal}"/> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsChecked" Value="true"> 
           <Setter TargetName="PART_Image" Property="Source" Value="{StaticResource imgChecked}"/> 
          </Trigger> 
          <Trigger Property="IsEnabled" Value="false"> 
           <Setter TargetName="PART_Image" Property="Source" Value="{StaticResource imgNormal}"/> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ToggleButton.Style> 
</ToggleButton> 

Und alles funktioniert. Aber ich möchte einen Tooltip für jeden Zustand meines togglebutton erstellen. Ein "Active, blabla". Und die andere "Inaktive blabla". Und meine Software muss lokalisiert werden, daher basiert der Text des Tooltips auf einer Ressource (en, fr, de, etc).

Von dem, was ich sah, bin ich ziemlich sicher, dass es ein einfaches Schlüsselwort oder so ... Aber ich weiß nicht, was Schlüsselwort, und wo ich es setzen ...

Vielen Dank. Tschüss.

Antwort

0

U se Style so etwas wie:

<Trigger Property="IsChecked" Value="True"> 
      <Setter Property="ToolTip" Value="{x:Static local:MainWindow.Tooltip1}"/> 
</Trigger> 
<Trigger Property="IsChecked" Value="False"> 
      <Setter Property="ToolTip" Value="{x:Static local:MainWindow.Tooltip2}"/> 
</Trigger> 

Eigentum: Verwenden CLR property erhalten Werte von Ressourcendatei

private static string tooltip1; 

    public static string Tooltip1 
    { 
     get 
     { 
      if (tooltip1 == null) 
      { 
       tooltip1 = "";//get this value form Resources 
      } 
      return tooltip1; 
     } 

    } 
+0

Vielen Dank, es hat perfekt funktioniert :). – Ahonir

+0

@Ahonir Ihre Begrüßung :) –

1

Sie können einfach stellen Sie die Tooltip-Eigenschaft

  <ToggleButton.Style> 
       <Style TargetType="ToggleButton"> 
        <Style.Triggers> 
         <Trigger Property="IsChecked" Value="True"> 
          <Setter Property="ToolTip" Value="Active"></Setter> 
         </Trigger> 
        </Style.Triggers> 
        <Setter Property="ToolTip" Value=""></Setter> 
       </Style> 
      </ToggleButton.Style>