0

Я попытался открыть ContextMenu из панели приложений с помощью метода ContextMenu.IsOpen(), который будет запускаться в событии «ApplicationBarIconButton_Click». На первой кнопке нажмите, вы видите, что есть s.th. происходит/открытие. Но ContextMenu отображается неправильно. Это кажется невидимым, отображается только верхняя граница. На второй кнопке все хорошо. Я использую текущую версию WP7 Toolkit.WP7 Toolkit: Открыть ContextMenu из ApplicationBar (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"> 
         ... 

XAML из AppBar:

<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

Это, как мне кажется, в поле кода выше. Я также добавил XAML для appBar. – jordi

ответ

0

Это похоже на ошибку в Windows Phone.

После обновления GDR2/Amber от Windows Phone 8 все в порядке.

Я положу кнопку за пределы меню, чтобы она работала для более старых версий.

+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 выше. Верхняя граница контекстного меню, кажется, находится в правильном положении. – jordi

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

  • Нет связанных вопросов^_^