Silverligth 4 - Notification API

[Sledujte také náš twitter @Aglightcz, kde naleznete krátké zprávy nejen o novinkách na našem webu]

Oznámení, že přišel nový email. Upozornění, že virová databáze je zastaralá nebo že je na serveru dostupná nová verze aplikace. Právě při těchto událostech se můžeme setkat s tzv. notifikací, která obvykle na nás vyskakuje z pravého dolního rohu obrazovky. V rámci nové verze Silverlightu můžeme tento mechanismus využít i v naších aplikacích.

Příklad notifikace:

notifikace

Třída, která zajišťuje vytváření notifikačních oken, se nacházi ve jmenném prostoru System.Windows. Velikost okna se nastavuje přes vlastnosti Width(šířka) a Height(výška). Pro zobrazení okna se používá metoda Show(int), která jako parametr přijímá dobu, po kterou bude notifikační okno zobrazeno.

Omezení

Prvním omezením je, že notifikační okno vyvoláte pouze v režimu mimo prohlížeč(Out of the browser - OOB). Uživatel tedy musí mít nainstalovanou aplikaci na svém PC. Není možné vyvolat notifikaci v rámci prohlížeče. Maximální možná velikost notifikačního okna je 100px pro výšku a 400px pro šířku. V případě nedodržení těchto rozměrů se může stát, že se nám okno nezobrazí. Dále je nutné počítat s tím, že v rámci notifikačního okna nemůžeme pracovat s událostmi vyvolané klávesnicí. Ve své podstatě by mělo být notifikační okno určené pouze pro čtení (Read-Only).

Ukázka

Následující aplikace bude mít jedno tlačítko, které po kliknutí vyvolá notifikační okno s nějakým oznámením.

Vytvořme si novou aplikaci a do ní jedno tlačítko. K tlačítku přidejme událost kliknutí(Click).

Velice jednoduše například:

<Grid x:Name="LayoutRoot" Background="White">
        <Button Content="Notify" Height="23" HorizontalAlignment="Left" 
                Margin="12,12,0,0" Name="button1" VerticalAlignment="Top"
                Width="75" Click="button1_Click" />
   </Grid>

Nyní se přepneme do kódu v pozadí (Code behind) a najdeme si metodu, která je vyvolána po kliknutí na tlačítko. V mém případě se jedná o metodu button1_Click.

Do této metody přidejme novou instanci notifikačního okna:

NotificationWindow notify = new NotificationWindow();

Nyní je třeba nastavit rozměry notifikačního okna. Ty se nastavují přes vlastnosti Width(šířka) a Height(výška). Jednotky jsou v pixelech.

notify.Width = 400;
notify.Height = 80;

Následně vyplníme okno nějakým obsahem. My si vystačíme pouze s textem. Pro tento účel zvolíme třídu TextBlock s textem “Notifikace”:

TextBlock tb = new TextBlock();
tb.Text = "Notifikace";
notify.Content = tb;

Vlastnost Content je typu FrameworkElement, takže obsah notifikačního okna může být graficky bohatý.

Nakonec toto okno zobrazíme přes metodu Show, která jako parametr přijímá časovou hodnotu. Pomocí této hodnoty, která je určena v milisekundách, oznamujeme, jak dlouho má být notifikační okno viditelné.

notify.Show(3000);

Z uvedeného fragmentu se okno zobrazí po dobu 3s.

Celý kód metody reagující na kliknutí tlačítka:

private void button1_Click(object sender, RoutedEventArgs e)
        {
            NotificationWindow notify = new NotificationWindow();
            notify.Width = 400;
            notify.Height = 80;
            
            TextBlock tb = new TextBlock();
            tb.Text = "Notifikace";
            
            notify.Content = tb;
            notify.Show(3000);
        }

V poslední řadě je důležité zapnout možnost instalace aplikace na klientský počítač (OOB). Ten jednoduše nastavíme přes vlastnosti projektu a zaškrtnutím možnosti instalace na klientské PC (Enable running application out of the browser).

Spustíme aplikaci, nainstalujeme aplikaci na klientský počítač a následně klikneme na tlačítko. Mělo by se nám zobrazit notifikační okno podobné tomu na obrázku:

SLNotifikace

Shrnutí

  • Vyvolání notifikačního okna pouze v režimu OOB
  • Maximální výška okna je 100px a maximální šířka okna je 400px
  • Metoda Show() slouží pro zobrazení notifikačního okna, jako parametr přijímá dobu, po kterou bude okno zobrazeno
  • Vlastnost Content je typu FrameworkElement
  • Nelze obsluhovat události vyvolané klávesnicí
Ohodnoťte článek: starstarstarstarstar

Komentáře

[ 18.12.2011 0:36:21 ]

Knowelgde wants to be free, just like these articles!

[ 20.12.2011 17:16:19 ]

PYoPkB , [url=http://knynzapsrdcx.com/]knynzapsrdcx[/url], [link=http://uihkrbxnvfje.com/]uihkrbxnvfje[/link], http://sjgryanzlwya.com/

Přidat komentář

jméno

text komentáře

opište text z obrázku


O autorovi

David Beinhauer

David Beinhauer

Působí jako Microsoft Student Partner a pracuje jako vývojář v jedné nadnárodní firmě. Zajímá se o webové technologie a počítačovou grafiku. Pozornost také věnuje hernímu průmyslu

web: www.aglight.cz

©2010 | David Beinhauer | Lukáš Kubis