Вы можете просто использовать Popup
вместо всплывающей подсказки, для которой вы устанавливаете Popup.IsOpen
на true
при нажатии.Возможно, потребуется настроить параметры размещения, также Popup.StaysOpen
, вероятно, следует установить на false
.
Редактировать: Как видно из дублирующего вопроса, подсказка в значительной степени имеет те же функции.Просто нужно обработать это явно.
<DataTemplate>
<Image Name="image" MaxHeight="48" Source="{Binding ImgUri}" ToolTipService.IsEnabled="False">
<Image.Triggers>
<EventTrigger RoutedEvent="Image.MouseLeftButtonUp">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.Target="{x:Reference image}"
Storyboard.TargetProperty="ToolTip.IsOpen">
<DiscreteBooleanKeyFrame KeyTime="0:0:0" Value="False"/>
<DiscreteBooleanKeyFrame KeyTime="0:0:0.0001" Value="True"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
<Image.Resources>
<ToolTip x:Key="tip" StaysOpen="False">
<Image Source="{Binding Source={x:Reference image}, Path=Source}"/>
</ToolTip>
</Image.Resources>
<Image.ToolTip>
<StaticResource ResourceKey="tip"/>
</Image.ToolTip>
</Image>
</DataTemplate>
Обратите внимание, что функция автоматического открытия всплывающей подсказки была отключена с помощью ToolTipService.IsEnabled="False"
( В приведенном выше примере показано изображение, которое былонажал во всплывающем окне, без ограничений размера )