none
Notificaciones en Silverlight RRS feed

  • Pregunta

  • Alguien ha usado las Notificaciones en Silverlight? estoy tratando de usarlas, creando un UserControl con un fondo de color y un botón para cerrar la notificación antes de que el tiempo definido transcurra, y no me muestra el botón, ni tampoco el fondo, lo que hago es:

    En el MainPage.xaml.cs:

    if (Application.Current.IsRunningOutOfBrowser)
    {
          NotificationWindow notificacion = new NotificationWindow();
          NotificacionBienvenida content = new NotificacionBienvenida();
    
          content.CerrarNotificacion += () =>
                        notificacion.Close();
    
          notificacion.Content = content;
          notificacion.Show(5000);
    }

    En NotificacionBienvenida.xaml:

    <UserControl x:Class="MTTO.NotificacionBienvenida"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d"
        d:DesignHeight="300" d:DesignWidth="400">
        
        <Grid x:Name="LayoutRoot" Background="DarkSeaGreen">
            <Button Style="{StaticResource BotonRechazar}" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" 
                    Width="30" Height="30" Click="Button_Click"/>
            <TextBlock HorizontalAlignment="Left" Margin="45,10,0,0" TextWrapping="Wrap" FontSize="12" FontStyle="Italic"
                       Text="Bienvenido al Sistema de Mantenimiento" VerticalAlignment="Top" Width="288"/>
    
        </Grid>
    </UserControl>

    En NotificacionBienvenida.xaml.cs:

        public partial class NotificacionBienvenida : UserControl
        {
            public event Action CerrarNotificacion;
    
            public NotificacionBienvenida()
            {
                InitializeComponent();
            }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                if (CerrarNotificacion != null)
                    CerrarNotificacion();
            }
        }

    En tiempo de diseño, la notificación se ve más o menos así:

    Pero al correr la aplicación, solo se ve así la notificación:

    Alguna idea?? Estoy usando Silverlight  5.1.30514.0 con Windows 8

     Saludos!


    cyndyrdz


    viernes, 19 de septiembre de 2014 18:12

Todas las respuestas

  • Hola Cynthia, si tu proyecto es una aplicación OOB (Out of the Browser) se puede hacer lo que estás intentando, caso contrario no funcionaría y deberías implementar tu propia ventana de notificación.

    Está definido el estilo BotonRechazar? Y no te olvides de colocar esto en tu ventana que realiza la llamada:

    Application.MainWindow.Activate();

    Saludos


    Christian Amado
    Software Engineer | MCPD: Windows Phone Developer | MCTS: Silverlight Developer
    Don't forget to mark the right answer and vote up if helps you.
    MCP Profile

    viernes, 19 de septiembre de 2014 18:51
  • Christian, mi proyecto SI es OOB, el BotonRechazar SI está definido, no tengo nada como lo que me indicas de Application.MainWindow.Activate(); no sé dónde ponerlo, ya intenté en varias partes de mi MainPage.xaml.cs, que es donde se lanza la notificación pero no me deja, me marca errores: " 'MainWindow' es 'propiedad' pero se utiliza como 'tipo' ", "se requiere una referencia de objeto para el campo, método o propiedad no estáticos 'Systen.Windows.Application.MainWindow.get' "

    Saludos y gracias


    cyndyrdz

    viernes, 19 de septiembre de 2014 20:58
  • Christian, mi proyecto SI es OOB, el BotonRechazar SI está definido, no tengo nada como lo que me indicas de Application.MainWindow.Activate(); no sé dónde ponerlo, ya intenté en varias partes de mi MainPage.xaml.cs, que es donde se lanza la notificación pero no me deja, me marca errores: " 'MainWindow' es 'propiedad' pero se utiliza como 'tipo' ", "se requiere una referencia de objeto para el campo, método o propiedad no estáticos 'Systen.Windows.Application.MainWindow.get' "

    Saludos y gracias


    cyndyrdz

    Cynthia, Application.MainWindow se refiere a la ventana que realiza la llamada.

    Saludos.


    Christian Amado
    Software Engineer | MCPD: Windows Phone Developer | MCTS: Silverlight Developer
    Don't forget to mark the right answer and vote up if helps you.
    MCP Profile

    viernes, 19 de septiembre de 2014 21:07
  •  Christian, lo pude poner, pero así:

    Application.Current.MainWindow.Activate();
      Pero como quiera sigue funcionando como antes, no me pone el color del Background ni me muestra el botón...

    cyndyrdz

    viernes, 19 de septiembre de 2014 21:29