0

我嘗試使用將在事件「ApplicationBarIconButton_Click」上運行的「ContextMenu.IsOpen()」方法從應用程序欄中打開ContextMenu。點擊第一個按鈕後,您會看到s.th.發生/打開。但是ContextMenu顯示不正確。它看起來不可見,只顯示頂部邊框。在第二個按鈕上點擊一切都很好。我正在使用WP7 Toolkit的當前版本。WP7工具包:從ApplicationBar中打開ContextMenu(contextmenu未顯示)

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

在此先感謝

+0

請發佈上下文菜單的XAML。 –

+0

這是在上面的代碼字段中給出的,我想。我還爲appBar添加了XAML。 – jordi

回答

0

這似乎是Windows Phone中的一個錯誤。

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

我會將按鈕放在菜單欄外部以使其適用於舊版本。

+0

我猜你沒有嘗試使它適用於ApplicationBarMenuItem項目?這似乎不起作用。 –

1

您的上下文菜單中沒有任何內容。你需要在裏面有MenuItem個實例。

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

MenuItems和處理程序在Sub New()上以編程方式生成。我添加了上面的vb.net代碼。 contextmenu的頂部邊界似乎處於正確的位置。 – jordi