Как вызвать пользовательскую подсказку при щелчке левой кнопкой мыши в WPF? - PullRequest
1 голос
/ 02 мая 2011

У меня есть представление списка, в котором в одном столбце отображаются только изображения.Я хочу показать подсказку на изображениях, когда пользователь явно щелкает левой кнопкой мыши на изображении.Я не хочу показывать всплывающую подсказку при наведении мыши на любое изображение.

1 Ответ

0 голосов
/ 02 мая 2011

Вы можете просто использовать 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"

( В приведенном выше примере показано изображение, которое былонажал во всплывающем окне, без ограничений размера )

...