none
Problema InitializeApplicationBar RRS feed

  • Pregunta

  • Hola,

     

    Tengo un problema, muestro un mapa como pantalla principal y quiero ponerle un botón debajo para la configuración de gps y demás. El problema es que no hay manera de que se vea dicho botón.

     

    Este es el XAML

     

     

    <phone:PhoneApplicationPage 
    	xmlns:my="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps"
    	x:Class="RadarMap.MainPage"
    	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    	xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    	xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    	xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    	xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    	mc:Ignorable="d"
     
    	FontFamily="{StaticResource PhoneFontFamilyNormal}"
    	FontSize="{StaticResource PhoneFontSizeNormal}"
    	Foreground="{StaticResource PhoneForegroundBrush}"
    	SupportedOrientations="Portrait" Orientation="Portrait"
    	shell:SystemTray.IsVisible="True">
     
    	<Canvas x:Name="LayoutRoot" Background="Transparent" Visibility="Visible">
    		<Canvas.Resources>
    			<Storyboard x:Name="mapAnimation">
    				<DoubleAnimation
    						Storyboard.TargetName="map1"
    						Storyboard.TargetProperty="Opacity"
    						From="0.0" To="1.0" Duration="0:0:1" 
    						AutoReverse="False" />
    			</Storyboard>
    		</Canvas.Resources>
    		<ProgressBar x:Name="progress" Height="5" IsIndeterminate="True" Width="480" Style="{StaticResource PerformanceProgressBar}"/>
     
    		<my:Map Name="map1" Visibility="Visible" CredentialsProvider="{Binding mapCredentials}" Height="670" Width="480" Canvas.Top="6">
    			<my:Map.Mode>
    				<my:RoadMode AnimationLevel="Full" />
    			</my:Map.Mode>
    		</my:Map>
    		<TextBlock x:Name="speed" Foreground="Black" FontSize="60"  Height="97" Width="403" Canvas.Left="17" />
    		<MediaElement x:Name="sound" AutoPlay="False" Source="Sound\radar.mp3" Visibility="Visible" Width="1" Height="1" MediaEnded="sound_MediaEnded" />
        </Canvas>
     
        <!--Sample code showing usage of ApplicationBar-->
    	<!--<phone:PhoneApplicationPage.ApplicationBar>
    		<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
    			<shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"/>
    			<shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2"/>
    			<shell:ApplicationBar.MenuItems>
    				<shell:ApplicationBarMenuItem Text="MenuItem 1"/>
    				<shell:ApplicationBarMenuItem Text="MenuItem 2"/>
    			</shell:ApplicationBar.MenuItems>
    		</shell:ApplicationBar>
    	</phone:PhoneApplicationPage.ApplicationBar>-->
    	<phone:PhoneApplicationPage.ApplicationBar>
    		<shell:ApplicationBar IsVisible="False" BackgroundColor="AliceBlue" ForegroundColor="White" IsMenuEnabled="True" Opacity="0.7">
    			
    		</shell:ApplicationBar>
    	</phone:PhoneApplicationPage.ApplicationBar>
     
    </phone:PhoneApplicationPage>

    Como podéis ver utilizo un canvas para el mapa ya que el grid no funcionaba bien. Y después en el código.cs inicializo ApplicationBar:

     

     

     this.InitializeApplicationBar();
                    }
     
     
                }
            }
     
            /// <summary>
            /// Initialize app menu
            /// </summary>
            protected void InitializeApplicationBar()
            {
                var settings = new ApplicationBarIconButton(new Uri("Images/settings.png"UriKind.Relative)) { Text = AppResources.settingsTittle };
                settings.Click += ApplicationBarIconButton_Settings;
     
                ApplicationBar.Buttons.Add(settings);
            }
            /// <summary>
            /// Click on the "settings" button in the main menu
            /// </summary>
            private void ApplicationBarIconButton_Settings(object sender, EventArgs e)
            {
                this.NavigationService.Navigate(new Uri("/Settings.xaml"UriKind.Relative));
            }

     

    En fin, no se si es problema del canvas o de que pero lo he hecho en otras aplicaciones exactamente igual y funciona. A ver si veis algo raro...

     

    Saludos y gracias!

    miércoles, 3 de agosto de 2011 10:27

Respuestas

  • Hola Alberto,

     

    Lo que veo es que application bar lo tienes IsVisible = false, y después en el código no veo por ningún sitio que lo pongas a true.

     

    <shell:ApplicationBar IsVisible="False" BackgroundColor="AliceBlue" ForegroundColor="White" IsMenuEnabled="True" Opacity="0.7">
    

    Saludos,


    phurtado
    • Marcado como respuesta Alberto Bailac jueves, 4 de agosto de 2011 7:40
    miércoles, 3 de agosto de 2011 11:21

Todas las respuestas

  • ¿Por qué no metes el botón directamente en el application bar usando el xaml?

    Creo que te ahorrarías problemas.

     

    Saludos.

    miércoles, 3 de agosto de 2011 11:17
  • Hola Alberto,

     

    Lo que veo es que application bar lo tienes IsVisible = false, y después en el código no veo por ningún sitio que lo pongas a true.

     

    <shell:ApplicationBar IsVisible="False" BackgroundColor="AliceBlue" ForegroundColor="White" IsMenuEnabled="True" Opacity="0.7">
    

    Saludos,


    phurtado
    • Marcado como respuesta Alberto Bailac jueves, 4 de agosto de 2011 7:40
    miércoles, 3 de agosto de 2011 11:21
  • Si, era eso. Pero lo estaba poniendo esa variable a true en el código para que el botón se viera en determinado momento. Tenia mal declarada la variable....

     

    Gracias!!

    jueves, 4 de agosto de 2011 7:42