WP7工具包:从ApplicationBar打开ContextMenu(不显示contextmenu)

时间:2013-07-05 14:56:14

标签: vb.net windows-phone-7 contextmenu toolstrip application-bar

我尝试使用" ContextMenu.IsOpen()"从应用程序栏打开ContextMenu。将在事件" ApplicationBarIconButton_Click"上运行的方法。在第一个按钮点击,你看到那里的s.th.发生/打开。但ContextMenu无法正确显示。它似乎不可见,只显示顶部边框。在第二个按钮上单击一切都很好。我正在使用当前版本的WP7 Toolkit。

XAML

...
            <Grid x:Name="ContentPanel" Margin="12,-16,12,0">
                <ScrollViewer>
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="Loaded">
                            <ec:GoToStateAction StateName="VisualState"/>
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                    <toolkit:ContextMenuService.ContextMenu>
                        <toolkit:ContextMenu IsZoomEnabled="True" x:Name="ctxContextMenu" Margin="0" CacheMode="BitmapCache" BorderThickness="2"/>
                    </toolkit:ContextMenuService.ContextMenu>
                    <StackPanel Orientation="Vertical">
                        ...

AppBar的XAML:

<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="False">
        <shell:ApplicationBarIconButton Click="btnExternVisit_Click" IconUri="/Images/visit.png" Text="Externe Links"/>
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

VB.NET:

Dim ctxItem As New MenuItem() With {.Header = "Text"}
                AddHandler ctxItem.Tap, Sub()
                                            Dim showWeb As New WebBrowserTask()
                                            showWeb.Uri = New Uri("uri")
                                            showWeb.Show()
                                        End Sub
                ctxContextMenu.Items.Add(ctxItem)

这是它的样子:

ContextMenu is not displayed correctly

提前致谢

2 个答案:

答案 0 :(得分:1)

您的上下文菜单中没有任何内容。你需要MenuItem个实例。

<toolkit:ContextMenuService.ContextMenu>
    <toolkit:ContextMenu>
        <toolkit:MenuItem Header="A"/>
        <toolkit:MenuItem Header="B"/>
        <toolkit:MenuItem Header="C"/>
    </toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>

答案 1 :(得分:0)

这似乎是Windows Phone中的一个错误。

在Windows Phone 8的GDR2 / Amber更新之后,一切都很好。

我会将按钮放在菜单栏外面,以使其适用于旧版本。