Контекстное меню XAML не закрывается - PullRequest
0 голосов
/ 09 ноября 2009

У меня есть «всплывающее» контекстное меню в списке, и есть два поведения, которые могут показаться «нестандартными», но мне нелегко заставить XAML ContextMenu вести себя так, как надо Я ожидал бы ...

Во-первых, когда я выбираю подменю (например, «Один» или «Два»), начальное меню продолжает оставаться открытым (например, «Меню» не исчезает после того, как я сделал выбор). Во-вторых, поля меню кажутся странными. Выравнивание по левому краю Горизонтально, кажется, не делает главное меню (например, «Меню») выравниванием по левому краю ... Я могу обойти это, изменив поле - но это больно для динамического текста.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <StackPanel>
    <ListView>
      <ListView.ContextMenu>
        <!-- StaysOpen="False" -->
        <ContextMenu>
          <!--  Background="Transparent" Margin="-8,0,-8,0" -->
          <Menu>
            <!-- StaysOpenOnClick="False" -->
            <MenuItem Header="Menu">
              <MenuItem Header="One" />
              <MenuItem Header="Two" />
            </MenuItem>
          </Menu>
        </ContextMenu>
      </ListView.ContextMenu>
      <ListViewItem Content="Red" />
      <ListViewItem Content="Orange" />
      <ListViewItem Content="Black" />
      <ListViewItem Content="Blue" />
      <ListViewItem Content="Green" />
    </ListView>
  </StackPanel>
</Page>

Есть мысли о том, как заставить главное меню этого всплывающего окна вести себя? Заранее спасибо, T

1 Ответ

0 голосов
/ 10 ноября 2009

Попробуйте это:

    <ContextMenu>
      <MenuItem Header="Menu">
        <MenuItem Header="One" />
        <MenuItem Header="Two" />
      </MenuItem>
    </ContextMenu>

вы не должны иметь меню внутри контекстного меню. Вы должны поставить пункт меню напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...