Popup无法在MenuItem上运行

时间:2015-11-26 10:33:03

标签: c# wpf xaml contextmenu menuitem

我必须在点击MenuItem时显示一个Popup。我已经写了下面的代码:

<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;
}

我可以在点击“信息”按钮时看到弹出窗口,但弹出窗口会在一秒钟内完成。我希望它可见,直到用户点击其他区域或弹出窗口失去焦点。 请建议做什么。

2 个答案:

答案 0 :(得分:0)

Target = BindingTarget.Type应用于您的MenuItem。

答案 1 :(得分:0)

请使用StaysOpen布尔来定义您想要的内容。

myPopup.StaysOpen = true;

有关详细信息,请参阅以下链接:https://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.popup.staysopen(v=vs.110).aspx