none
SystemTray en un MessageBox RRS feed

  • Pregunta

  • Hola a todos, tengo un pequeño problema con el SystemTray, actualmente en mi aplicación lo tengo oculto pero si muestro un MessageBox automaticamente se muestra, no sería ningún problema si no fuese porque en modo Landscape se ve fatal, os pongo una pagina de ejemplo:

    MainPage.xaml

    <phone:PhoneApplicationPage 
        x:Class="PhoneApp1.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" d:DesignWidth="800" d:DesignHeight="480"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
                                SupportedOrientations="Landscape"
                                Orientation="Landscape"
        shell:SystemTray.IsVisible="False">
        <Grid x:Name="LayoutRoot" Background="red">
            <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <Button Content="Pulsame!"
                        Tap="Button_Tap"
                        Background="Cyan"></Button>
            </Grid>
        </Grid>
    </phone:PhoneApplicationPage>

    MainPage.xaml.cs

    using System.Windows;
    using System.Windows.Input;
    using Microsoft.Phone.Controls;
    using Microsoft.Phone.Shell;
    
    namespace PhoneApp1
    {
        public partial class MainPage : PhoneApplicationPage
        {
            // Constructor
            public MainPage()
            {
                InitializeComponent();
                SystemTray.SetIsVisible(this, false);
            }
            private void Button_Tap(object sender, GestureEventArgs e)
            {
                MessageBox.Show("Hola","Caption", MessageBoxButton.OK);
            }
        }
    }

    SystemTray-MessageBox

    Alguna idea de como quitarlo?

    viernes, 17 de febrero de 2012 18:56

Respuestas

  • Hola!

    Este es el comportamiento por defecto, tanto en el messageBox de Silverlight como en el de XNA, lamentablemente no se puede evitar. Lo que puedes hacer es construirte tu propio messagebox Compuesto por un pop up que muestres y ocultes, parecerá el messagebox pero al ser tuyo no aparecerá la systemtray.

    Un saludo!


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter

    • Propuesto como respuesta Bazookao domingo, 19 de febrero de 2012 16:16
    • Marcado como respuesta SpidermAMM domingo, 19 de febrero de 2012 16:47
    sábado, 18 de febrero de 2012 11:35
    Moderador