Jump to content

Recommended Posts

Posted

Olá pessoal, hoje não é bem de C# mas sim de XAML e tem a ver com a propriedade ContextFlyout.

Tenho um TextBlock em que quero que apareça um menu com os seus submenus. O código que tenho funciona, mas apenas se eu clicar com o botão direito para fazer aparecer esse menu, e eu queria que aparecesse com o clicar do botão esquerdo. Como é que consigo fazer isso? Este é o código:

<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>

Obrigado pela ajuda.

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Posted

Bom a solução passava por usar outra propriedade eu estava a usar ContextFlyout, quando tinha que usar o FlyoutBase, ou seja o XAML ficou assim:

<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" x:Name="Art3Fly" Click="Art3Fly_Click" />
       <MenuFlyoutItem Text="Artigo 4º Aplicação no espaço: princípio geral" x:Name="Art4Fly" Click="Art4Fly_Click"/>
       <MenuFlyoutItem Text="Artigo 5º Fatos praticados fora do território português" x:Name="Art5Fly" Click="Art5Fly_Click"/>
       <MenuFlyoutItem Text="Artigo 6º Restrições à aplicação da lei portuguesa" x:Name="Art6Fly" Click="Art6Fly_Click"/>
       <MenuFlyoutItem Text="Artigo 7º Lugar da pratica do fato" x:Name="Art7Fly" Click="Art7Fly_Click"/>
       <MenuFlyoutItem Text="Artigo 8º Aplicação subsidiária do Código Penal" x:Name="Art8Fly" Click="Art8Fly_Click"/>
       <MenuFlyoutItem Text="Artigo 9º Disposições especiais para jovens" x:Name="Art9Fly" Click="Art9Fly_Click"/>
     </MenuFlyoutSubItem>
     </MenuFlyoutSubItem>

   <MenuFlyoutItem Text="Título II Do Facto"/>
  </MenuFlyout>
</FlyoutBase.AttachedFlyout>

e no C# tive que meter isto:

private void TextBlock_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
        {
            FrameworkElement element = sender as FrameworkElement;
            if (element != null)
            {
                Flyout.ShowAttachedFlyout(Livro1Texto);
            }

        }

Fica aqui a resposta, não vá mais alguém precisar.

Obrigado de qualquer forma.

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.