如何根据切换按钮的状态放置工具提示,WPF

How to put tooltips depending on togglebutton's state, WPF

我在 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>

一切正常。 但我想为切换按钮的每个状态创建一个工具提示。 一个"Active, blabla"。 还有一个"Inactive blabla"。 而且我的软件必须本地化,因此工具提示的文本基于资源(en、fr、de 等)。

据我所见,我很确定这是一个简单的关键字之类的...但我不知道是什么关键字,也不知道我必须把它放在哪里...

非常感谢。 再见

您可以简单地设置工具提示属性

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

Use Style 类似于:

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

属性: 使用CLR property从资源文件

获取值
private static string tooltip1;

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

    }