菜单弹出鼠标左键单击

menu flyout mouse left click

我有点迷路了,我在 TextBlock 中有一个 ContextFlyout,它可以通过鼠标右键单击工作,但我希望它可以通过鼠标左键单击工作。 我该怎么做?这是显示菜单的错误方式吗?

<TextBlock x:Name="Livro1Texto" Text="Livro 1" >
 <TextBlock.ContextFlyout>                                 
  <MenuFlyout>
     <MenuFlyoutSubItem Text="Título I Da Lei Criminal">
       <MenuFlyoutSubItem Text="Princípios Gerais">                                            
         <MenuFlyoutItem Text="Artigo 1º Princípio da legalidade" x:Name="Art1Fly" Click="Art1Fly_Click"/>
         <MenuFlyoutItem Text="Artigo 2º Aplicação no tempo"  x:Name="Art2Fly" Click="Art2Fly_Click"/>
         <MenuFlyoutItem Text="Artigo 3º Momento da prática do fato" />
         <MenuFlyoutItem Text="Artigo 4º Aplicação no espaço: princípio geral"/>
         <MenuFlyoutItem Text="Artigo 5º Fatos praticados fora do território português"/>
         <MenuFlyoutItem Text="Artigo 6º Restrições à aplicação da lei portuguesa"/>
         <MenuFlyoutItem Text="Artigo 7º Lugar da pratica do fato" />
         <MenuFlyoutItem Text="Artigo 8º Aplicação subsidiária do Código Penal"/>
         <MenuFlyoutItem Text="Artigo 9º Disposições especiais para jovens"/>
         </MenuFlyoutSubItem>
         </MenuFlyoutSubItem>

      <MenuFlyoutItem Text="Título II Do Facto"/>
    </MenuFlyout>
 </TextBlock.ContextFlyout>   
</TextBlock>

but I want it to work with left mouse click. How can I do it?

根据您的要求,您可以使用 FlyoutBase.AttachedFlyout 来实现此功能。

要将 MenuFlyoutTextBlock 相关联,请使用附加的 FlyoutBase.AttachedFlyout 属性。当使用 FlyoutBase.AttachedFlyoutMenuFlyout 分配给其他 UI 元素时,您必须调用 ShowAt 方法或静态 ShowAttachedFlyout 方法来显示弹出窗口。

<TextBlock x:Name="Livro1Texto" Text="Livro 1" VerticalAlignment="Center" HorizontalAlignment="Center" Tapped="Livro1Texto_Tapped">
    <FlyoutBase.AttachedFlyout>
           <MenuFlyout>
            <MenuFlyoutSubItem Text="Título I Da Lei Criminal">
                <MenuFlyoutSubItem Text="Princípios Gerais">
                    <MenuFlyoutItem Text="Artigo 1º Princípio da legalidade" x:Name="Art1Fly" Click="Art1Fly_Click" />
                    <MenuFlyoutItem Text="Artigo 2º Aplicação no tempo"  x:Name="Art2Fly" Click="Art2Fly_Click" />
                    <MenuFlyoutItem Text="Artigo 3º Momento da prática do fato" />
                    <MenuFlyoutItem Text="Artigo 4º Aplicação no espaço: princípio geral" />
                    <MenuFlyoutItem Text="Artigo 5º Fatos praticados fora do território português" />
                    <MenuFlyoutItem Text="Artigo 6º Restrições à aplicação da lei portuguesa" />
                    <MenuFlyoutItem Text="Artigo 7º Lugar da pratica do fato" />
                    <MenuFlyoutItem Text="Artigo 8º Aplicação subsidiária do Código Penal" />
                    <MenuFlyoutItem Text="Artigo 9º Disposições especiais para jovens" />
                </MenuFlyoutSubItem>
            </MenuFlyoutSubItem>
            <MenuFlyoutItem Text="Título II Do Facto" />
        </MenuFlyout>
    </FlyoutBase.AttachedFlyout>
</TextBlock>

TextBlock Tapped 事件处理程序中调用 ShowAttachedFlyout

private void Livro1Texto_Tapped(object sender, TappedRoutedEventArgs e)
 {
     FrameworkElement element = sender as FrameworkElement;
     if (element != null)
     {
         FlyoutBase.ShowAttachedFlyout(element);
     }
 }