Создание всплывающей подсказки не видно - PullRequest
1 голос
/ 06 февраля 2020

Есть значок, который я хочу всегда видеть, но хочу, чтобы подсказка была условно видимой. Вот код, который у меня сейчас есть:

<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 находится в текстовом блоке всплывающей подсказки, а не в самой подсказке, установка его как невидимого дает мне только пустую подсказку, а не всплывающую подсказку. Я попытался определить содержание всплывающей подсказки (textblock) в UserControls.Resources, а затем установить textblock и IsEnabled, но он выдал ошибку:

значение типа tooltipservice нельзя добавить к коллекция или словарь типа inlinecolection

Кажется, нет простого способа установить видимость для всплывающей подсказки. Если у кого-то есть какие-либо предложения, это будет с благодарностью!

1 Ответ

1 голос
/ 06 февраля 2020

Вы можете использовать ToolTipService.IsEnabled свойство для цели

ToolTipService.IsEnabled="{Binding IsToolTipVisible}" 

Где 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...