使工具提示不可见
Making a ToolTip not visible
有一个图标我希望始终可见,但我希望工具提示有条件地可见。这是我目前拥有的代码:
<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 时显示。我遇到的问题是因为可见性 属性 在工具提示文本块上而不是工具提示本身,将它设置为不可见只会给我一个空的工具提示,而不是工具提示根本不出现。我尝试在 UserControls.Resources 中定义工具提示(文本块)的内容,然后设置文本块和 IsEnabled,但它给了我错误:
a value of type tooltipservice cannot be added to a collection or dictionary of type inlinecolection
似乎没有一种简单的方法来设置工具提示的可见性。如果有人有任何建议,将不胜感激!
您可以使用 ToolTipService.IsEnabled
属性
ToolTipService.IsEnabled="{Binding IsToolTipVisible}"
哪里 IsToolTipVisible
视图模型在哪里 属性 指示在何处启用工具提示
完整代码
<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>
有一个图标我希望始终可见,但我希望工具提示有条件地可见。这是我目前拥有的代码:
<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 时显示。我遇到的问题是因为可见性 属性 在工具提示文本块上而不是工具提示本身,将它设置为不可见只会给我一个空的工具提示,而不是工具提示根本不出现。我尝试在 UserControls.Resources 中定义工具提示(文本块)的内容,然后设置文本块和 IsEnabled,但它给了我错误:
a value of type tooltipservice cannot be added to a collection or dictionary of type inlinecolection
似乎没有一种简单的方法来设置工具提示的可见性。如果有人有任何建议,将不胜感激!
您可以使用 ToolTipService.IsEnabled
属性
ToolTipService.IsEnabled="{Binding IsToolTipVisible}"
哪里 IsToolTipVisible
视图模型在哪里 属性 指示在何处启用工具提示
完整代码
<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>