如何根据ToggleButton的状态放置工具提示,WPF

3
我在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等)。
从我所看到的,我很确定它是一个简单的关键字或什么东西......但我不知道关键字在哪里放置......
非常感谢。 再见。
2个回答

4
您可以简单地设置Tooltip属性。
            <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>

1

Use Style something like:

 <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 属性从资源文件中获取值
private static string tooltip1;

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

    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接