Silverlight Textblöcke und Parameter
Kommentare

Wie übergibt man eigentlich Parameter an Silverlight und TextBlock-Texte selektierbar? Gregor Biswanger zeigt es Ihnen.

Es gibt nichts unangenehmeres, als einen Text in einer Silverlight-Anwendung, der nicht markiert und somit auch nicht in den Zwischenspeicher kopiert werden kann. Das ist dann der Fall, wenn der Text mittels TextBlock-Steuerelement angezeigt wird. Dieses How To zeigt deshalb einen TextBlock-Style für eine TextBox. Einfach den Sourcecode aus Listing 1 in das gewünschte Silverlight-Projekt unter der App.xaml einfügen. Anschließend wird der Style einer TextBox zugewiesen, die dann als TextBlock fungieren soll. Das verdeutlicht Listing 2, wo der XAML-Code dem Style direkt zugewiesen wird. Bei Expression Blend definiert man einen Style, indem man mittels rechter Maustaste auf die TextBox klickt und unter EDIT TEMPLATE | APPLY RESOURCE | TEXTBLOCKSTYLE auswählt. Abbildung 1 zeigt, dass nun der TextBlock-Text markiert und mittels Tastenkombination Strg + C in der Zwischenablage abgelegt werden kann.


 

  

 
  

  

TextBox als TextBlock
TextBox als TextBlock

  

Doch das ist noch nicht alles. Wie kommen die Parameter in die Silverlight-Anwendung? In der Codebehind-Datei zur App.xaml (App.xaml.cs) werden im Konstruktor einige wichtige Events registriert, unter anderem auch ein Startup-Event der Applikation. Im Event Handler sind StartupEventArgs verfügbar, die den Zugriff auf die InitParams erlauben. Darüber können die zuvor deklarierten Parameter abgefragt und für den weiteren Verlauf verwendet werden (Listing 4).

private void Application_Startup(object sender, 
   StartupEventArgs e)
{
    NeededParameters parameters = new NeededParameters();
    if (e.InitParams != null && e.InitParams.Count > 0)
    {
        if (e.InitParams.ContainsKey("website"))
            parameters.Website = e.InitParams["website"];
        if (e.InitParams.ContainsKey("category"))
            parameters.Category = e.InitParams["category"];
    }
    this.RootVisual = new Page(parameters);
}  

Gregor Biswanger ist Solution Architect und Silverlight-Fachexperte bei der Firma impuls Informationsmanagement GmbH in Nürnberg. Seine Schwerpunkte liegen im Bereich der .NET-Architektur und agiler Prozesse. Biswanger ist auch freier Autor, Trainer, Projektbegleiter, Speaker und Microsoft CLIPler der INdotNET (Ingolstädter .NET Developers Group). Sie erreichen seinen Blog unter www.dotnet-blog.net.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -