2015-11-26 6 views
1

Мне нужно отобразить всплывающее окно при щелчке MenuItem. Я написал следующий код для этого:Popup не работает над MenuItem

<ContextMenu> 
    <Border> 
     <MenuItem Name="ack" Header="ACK" HorizontalAlignment="Center" Command="{Binding AcknowledgeCommand}" Visibility="{Binding IsAcked, Converter={StaticResource showOnFalse}}" Click="MenuItem_Click_1"/> 
    </Border> 
    <Separator/> 
    <Border> 
     <MenuItem Header="Info" HorizontalAlignment="Center" Click="MenuItem_Click"/> 
    </Border> 
    <Separator/> 
    <Border> 
     <MenuItem Header="Goto" HorizontalAlignment="Center"/> 
    </Border> 
    <Popup Name="infoPopup" Placement="Mouse" HorizontalOffset="-100" VerticalOffset="-100" AllowsTransparency="True" StaysOpen="True"> 
     <Alarms:UserControl_MYUC DataContext="{Binding TopMost}" Background="{DynamicResource DetailPanelCompartmentTitleBg}" BorderBrush="{DynamicResource SecWindowBtnBorder}"/> 
    </Popup> 
</ContextMenu> 

OnClick из MenuItem, я написал следующий код:

private void MenuItem_Click(object sender, RoutedEventArgs e) 
{ 
    infoPopup.Visibility = System.Windows.Visibility.Visible; 
    infoPopup.IsOpen = true; 
} 

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

+0

Как вы показываете всплывал? –

+0

Я отредактировал вопрос и предоставил ответ на ваш вопрос @NahuelIanni – MOHIT

ответ

0

Применить StaysOpenOnClick="True" к вашему MenuItem.

+0

Спасибо! Это работает, – MOHIT

+0

Но в следующий раз, когда я нажимаю правой кнопкой мыши на экране, всплывающее окно открывается в том же месте. Я дал место размещения = «Мышь», но всплывающее окно открывается в том месте, где оно было открыто. Как я могу избавиться от этого? – MOHIT

Смежные вопросы