【问题标题】:WP7 Toolkit: Open ContextMenu from ApplicationBar (contextmenu not displayed)WP7 Toolkit:从 ApplicationBar 打开 ContextMenu(不显示上下文菜单)
【发布时间】:2013-07-05 14:56:13
【问题描述】:

我尝试使用“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)

这是它的样子:

提前致谢

【问题讨论】:

  • 请为上下文菜单发布 XAML。
  • 我认为它在上面的代码字段中给出。我还为 appBar 添加了 XAML。

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


【解决方案1】:

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

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

【讨论】:

  • MenuItems 和处理程序是在 Sub New() 上以编程方式生成的。我在上面添加了 vb.net 代码。上下文菜单的上边框似乎在正确的位置。
【解决方案2】:

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

在 Windows Phone 8 的 GDR2/Amber 更新之后,现在一切正常。

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

【讨论】:

  • 我猜你没有尝试让它适用于 ApplicationBarMenuItem 项?这似乎仍然行不通。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多