Всплывающий элемент управления WPF на ImageMouseLeftButtonDown исчезает немедленно - PullRequest
2 голосов
/ 18 апреля 2011

У меня есть всплывающее окно, определенное следующим образом,

<Popup x:Name="popLines"
         Placement="Bottom"
           IsOpen="False"
           Width="145" Height="42"
           StaysOpen="False"
           PopupAnimation="Fade"
           AllowsTransparency="True"
           HorizontalOffset="-2" VerticalOffset="0">
                    <Grid Margin="2">
                        <Path StrokeThickness="0.7" StrokeLineJoin="Round" Fill="#FFFFFFFF" Stretch="Fill" Stroke="Black"  Data="M6.5,0.5 L30.167,0.5 30.167,8.4999992 190.16701,8.4999992 190.16701,44.166001 0.5,44.166001 0.5,8.4999992 6.5,8.4999992 6.5,0.5 z">
                        </Path>
                        <Grid>
                        <StackPanel Orientation="Horizontal">
                            <TextBox BorderBrush="Black" BorderThickness="0.5" Margin="5,10,2,2" Width="110" Height="20" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ToolTip="Excel File Path"></TextBox>
                            <Image Source="/App_Desktop;component/Resources/save.png" Margin="2,10,5,2" Width="16" Height="16"></Image>
                        </StackPanel>
                        </Grid>
                    </Grid>
                </Popup>

Я установил IsOpen=true, когда запускается событие MouseLeftButtonDown изображения. Кроме того, всплывающее окно исчезает, как только оно появляется. Что не так?

1 Ответ

0 голосов
/ 18 апреля 2011

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

Вы можете решить эту проблему, установив StaysOpen="True" или установив IsOpen=true вобработчик щелчка или обработчик события MouseButtonUp.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...