помогите мне пожалуйста с всплывающим - PullRequest
0 голосов
/ 30 июля 2010

У меня есть изображение и всплывающее окно.При нажатии на всплывающее окно «Изображение» должно открыться.

Я начал так, и теперь я застрял.

        <Image x:Name="LockImage" Source="/Lock.png">
            <Image.Triggers>
                <EventTrigger RoutedEvent="MouseDown">
                    // ?????? WHAT's here?
                </EventTrigger>
            </Image.Triggers>
        </Image>
        <Popup x:Name="LockPopup" PlacementTarget="{Binding ElementName=LockImage}">
            <TextBlock Text="This is a popup" />
        </Popup>

UPD ... Ой, на самом деле я забыл ... Я хотел бывсплывающее окно будет показано не сразу, а через секунду или две.Если бы это был просто щелчок, это было бы что-то еще ... (действие по умолчанию)

1 Ответ

2 голосов
/ 30 июля 2010

Вот решение того, что вы хотите сделать.Время задержки может быть установлено в определениях раскадровки.Вставьте этот код в новый файл Window.xaml проекта приложения wpf.

<Window.Resources>
        <Storyboard x:Key="ShowPopup">
            <BooleanAnimationUsingKeyFrames Storyboard.TargetName="LockPopup" Storyboard.TargetProperty="(Popup.IsOpen)">
                <DiscreteBooleanKeyFrame KeyTime="00:00:00.5" Value="True" />
            </BooleanAnimationUsingKeyFrames>
        </Storyboard>

        <Storyboard x:Key="HidePopup" Storyboard.TargetName="LockPopup" Storyboard.TargetProperty="(Popup.IsOpen)">
            <BooleanAnimationUsingKeyFrames>
                <DiscreteBooleanKeyFrame KeyTime="00:00:00.5" Value="False" />
            </BooleanAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Grid x:Name="grid" ShowGridLines="True">
        <Image x:Name="LockImage" Stretch="None" >
            <Image.Source>
                <DrawingImage>
                    <DrawingImage.Drawing>
                        <GeometryDrawing Brush="Black">
                            <GeometryDrawing.Geometry>
                                <EllipseGeometry RadiusX="10" RadiusY="10"/>
                            </GeometryDrawing.Geometry>
                        </GeometryDrawing>
                    </DrawingImage.Drawing>
                </DrawingImage>
            </Image.Source>
            <Image.Triggers>
                <EventTrigger RoutedEvent="Image.MouseLeftButtonDown">
                    <BeginStoryboard Storyboard="{StaticResource ShowPopup}"/>
                </EventTrigger>
                <EventTrigger RoutedEvent="Image.MouseLeave">
                    <BeginStoryboard Storyboard="{StaticResource HidePopup}"/>
                </EventTrigger>
            </Image.Triggers>
        </Image>
        <Popup x:Name="LockPopup" PlacementTarget="{Binding ElementName=LockImage}" DataContext="{Binding}" Placement="Bottom">
            <TextBlock Text="This is a popup" Background="White" Foreground="Black" />
        </Popup>       
    </Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...