【问题标题】:Making a ToolTip not visible使工具提示不可见
【发布时间】:2020-02-05 22:09:21
【问题描述】:

我希望有一个图标始终可见,但我希望工具提示有条件地可见。这是我目前拥有的代码:

<TextBlock Grid.Row="2"
    Grid.Column="0"
    VerticalAlignment="Center"
    FontSize="15"
    Visibility="{Binding IsConnected, Converter={StaticResource BooleanToVisibilityConverter}}">
    <fa:ImageAwesome Icon="{Binding Path=BatteryLevelIcon, UpdateSourceTrigger=PropertyChanged}"
        Height="20"
        Width="20"
        Foreground="Green"
        Visibility="{Binding IsConnected, Converter={StaticResource BooleanToVisibilityConverter}}" />
     <ToolTipService.ToolTip>
         <TextBlock Visibility="{Binding IsCharging, Converter={StaticResource InvertedBooleanToVisibilityConverter}}">
             <TextBlock.Text>
                   <MultiBinding StringFormat="{}{0}%">
                        <Binding Path="BatteryPercentage" />
                   </MultiBinding>
             </TextBlock.Text>
         </TextBlock>
     </ToolTipService.ToolTip>
</TextBlock>

所以,我希望工具提示仅在 IsCharging 为 false 时显示。我遇到的问题是,因为 Visibility 属性位于工具提示文本块上,而不是工具提示本身,将其设置为不可见只会给我一个空的工具提示,而不是工具提示根本不出现。我尝试在 UserControls.Resources 中定义工具提示(文本块)的内容,然后设置文本块和 IsEnabled,但它给了我错误:

tooltipservice 类型的值不能添加到 inlinecolection 类型的集合或字典中

似乎没有一种简单的方法可以设置工具提示的可见性。如果有人有任何建议,将不胜感激!

【问题讨论】:

    标签: c# wpf xaml telerik


    【解决方案1】:

    您可以使用ToolTipService.IsEnabled 属性来达到目的

    ToolTipService.IsEnabled="{Binding IsToolTipVisible}" 
    

    Where IsToolTipVisible 指示在何处启用工具提示的 View Model 属性在哪里

    完整代码

    <TextBlock Grid.Row="2" ToolTipService.IsEnabled="{Binding IsToolTipVisible}" 
        Grid.Column="0"
        VerticalAlignment="Center"
        FontSize="15"
        Visibility="{Binding IsConnected, Converter={StaticResource BooleanToVisibilityConverter}}">
        <fa:ImageAwesome Icon="{Binding Path=BatteryLevelIcon, UpdateSourceTrigger=PropertyChanged}"
            Height="20"
            Width="20"
            Foreground="Green"
            Visibility="{Binding IsConnected, Converter={StaticResource BooleanToVisibilityConverter}}" />
         <ToolTipService.ToolTip>
             <TextBlock>
                 <TextBlock.Text>
                       <MultiBinding StringFormat="{}{0}%">
                            <Binding Path="BatteryPercentage" />
                       </MultiBinding>
                 </TextBlock.Text>
             </TextBlock>
         </ToolTipService.ToolTip>
    </TextBlock>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多