Ändern des Status als Reaktion auf Benutzerinteraktionen

Diese Seite bezieht sich nur auf Silverlight 2-Projekte

Wenn Sie ein eigenes Benutzersteuerelement erstellen, können Sie Statusoptionen und Statusgruppen hinzufügen, um die Darstellung des Steuerelements an den Status anzupassen. Zum Ändern des Status in Reaktion auf eine Benutzerinteraktion (z. B. einen Mausklick) fügen Sie Ereignishandlermethoden hinzu, die die Methode GoToState aufrufen.

Dd185503.alert_note(de-de,Expression.10).gifHinweis:

Wenn Sie die Vorlage für ein Systemsteuerelement (z. B. eine Schaltfläche) ändern, sind bereits Statusoptionen sowie Reaktionen des Steuerelements auf eine Benutzerinteraktion als Standard definiert. Sie können die Standardstatusoptionen nicht ändern. Sie können jedoch ändern, wie das Steuerelement im jeweiligen Status dargestellt wird. Verwenden Sie das folgende Verfahren, um den Status zu ändern.

So ändern Sie den Status als Reaktion auf einen Mausklick

  1. Wenn Sie noch keine Statusgruppen und Statusoptionen erstellt haben, führen Sie das Verfahren Definieren verschiedener visueller Statusmöglichkeiten und Übergangszeiten für Benutzersteuerelemente aus. Das folgende Bild zeigt beispielsweise eine Karte aus einem Kartenspiel als Benutzersteuerelement. Die Statusgruppe SideDisplayed enthält einen Status, der die Karte mit der Bildseite nach oben (FaceUp) und einen Status, der die Karte mit der Bildseite nach unten (FaceDown) anzeigt.

    Dd185503.74c3b2ef-32ab-4aaa-839d-852741d9b2c2(de-de,Expression.10).png

  2. Wählen Sie unter Status die Option Basis aus, um die Statusaufzeichnung zu deaktivieren.

  3. Wählen Sie unter Objekte und Zeitachsen das UserControl-Objekt aus, um ein Ereignis einzubinden, das auf Aktionen reagiert, die über dem Oberflächenbereich des Benutzersteuerelements stattfinden.

  4. Klicken Sie im Eigenschaftenpanel auf die Schaltfläche Ereignisse Dd185503.6c67bb3b-e8a2-4a63-bad5-54d5c15b04dd(de-de,Expression.10).png, um von der Eigenschaften- in die Ereignisansicht zu wechseln.

    Dd185503.alert_tip(de-de,Expression.10).gifTipp:

    Klicken Sie auf die Schaltfläche Eigenschaften Dd185503.cee1494c-ef95-4dd4-9fbc-9d02edfa78b7(de-de,Expression.10).png, um im Eigenschaftenpanel zur Eigenschaftenansicht zurückzukehren.

  5. Geben Sie neben dem MouseLeftButtonDown-Ereignis einen Namen für die Ereignishandlermethode ein, beispielsweise "goClick".

    Dd185503.98d2b5bb-eedc-4a13-bf87-7b7514868f87(de-de,Expression.10).png

    Dd185503.alert_tip(de-de,Expression.10).gifTipp:

    Alternativ können Sie einfach in das Ereignistextfeld doppelklicken, um einen Standardnamen für die Ereignishandlermethode zu generieren.

    Wenn Sie die EINGABETASTE drücken, wird von Microsoft Expression Blend das Projekt in Microsoft Visual Studio 2008 geöffnet, falls dieses Programm installiert ist. Ist kein Code-Editor installiert, wird von Expression Blend der Code für die Ereignishandlermethode in die Zwischenablage kopiert, sodass Sie die CodeBehind-Datei für das Benutzersteuerelement in einem Text-Editor öffnen und den Code aus der Zwischenablage einfügen können.

    private void goClick(object sender, MouseButtonEventArgs e)
    {
    
    }
    
    Private Sub goClick(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
    
    End Sub
    

    Weitere Informationen zur Interoperabilität von Visual Studio 2008 und Expression Blend finden Sie unter Bearbeiten einer CodeBehind-Datei.

  6. Damit das Benutzersteuerelement den Status ändert, rufen Sie die Methode GoToState mit dem Namen des Status auf. Fügen Sie beispielsweise den folgenden fettgedruckten Code in Ihre CodeBehind-Datei ein:

    private bool isFaceUp = false;
    
    private void goClick(object sender, MouseButtonEventArgs e)
    {
      if (isFaceUp)  {    VisualStateManager.GoToState(this, "FaceDown", true);  }  else  {    VisualStateManager.GoToState(this, "FaceUp", true);}  isFaceUp = !isFaceUp;
    }
    
    Private isFaceUp As Boolean = False
    
    Private Sub goClick(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
      If isFaceUp Then    VisualStateManager.GoToState(Me, "FaceDown", True)  Else    VisualStateManager.GoToState(Me, "FaceUp", True)  End If  isFaceUp = Not (isFaceUp)
    End Sub
    
  7. Erstellen Sie das Projekt (STRG+UMSCHALT+B).

  8. Testen Sie das Projekt (F5), und klicken Sie auf das Benutzersteuerelement, um die Statusänderungen anzuzeigen.

Problembehandlung

  • Sie erhalten die Fehlermeldung "Die CodeBehind-Datei kann nicht geändert werden. Die folgende Klasse wurde nicht gefunden", wenn Sie im Ereignispanel in Expression Blend einen Namen eingeben. Wechseln Sie in diesem Fall zum externen Code-Editor (in der Regel Microsoft Visual Studio), und laden Sie die Projektmappe neu. Beim Neuladen werden die neuen Dateien berücksichtigt, die die fehlende Klasse definieren. Wenn Sie in Visual Studio 2008 die Fehlermeldung "Die Projektmappe kann nicht geladen werden" erhalten, haben Sie möglicherweise Microsoft Silverlight Tools für Visual Studio 2008 nicht installiert. Installieren Sie die Tools, und geben Sie im Ereignispanel in Expression Blend einen Namen ein.

  • Das Benutzersteuerelement wird beim Testen des Projekts (F5) nicht angezeigt, und das Browserfenster gibt keinen Fehler an. In diesem Fall haben Sie möglicherweise keine Instanz des Benutzersteuerelements in das Startdokument gezeichnet. Das Startdokument ist das erste Dokument, das angezeigt wird, wenn Sie Ihre Anwendung ausführen. Wenn Sie ein Benutzersteuerelement in einem separaten Dokument erstellt haben, gehen Sie wie folgt vor: Erstellen Sie das Projekt (STRG+UMSCHALT+B), öffnen Sie das Startdokument (in der Regel Page.xaml), öffnen Sie die Objektbibliothek Dd185503.0224cabd-5da1-4e01-bddd-4a647401a098(de-de,Expression.10).png, wählen Sie das Benutzersteuerelement auf der Registerkarte Benutzerdefinierte Steuerelemente aus, und zeichnen Sie das Steuerelement auf der Zeichenfläche.

  • Treten beim Erstellen der Anwendung Probleme auf, haben Sie möglicherweise nicht die korrekte Version von Microsoft Silverlight installiert. Weitere Informationen finden Sie unter Installieren der Werkzeuge und Runtime von Silverlight 2.

Nächste Schritte

  • Sie können Animationen hinzufügen. Beispielsweise können Sie definieren, dass sich die Schaltfläche kontinuierlich dreht, wenn der Mauszeiger darauf zeigt. Weitere Informationen finden Sie unter Hinzufügen von Animationen zum Abspielen nach Zustandsänderungen.

  • Wirklichkeitsgetreue Szenarien, in denen Status und Statusgruppen verwendet werden, können Sie in den Videolernprogrammen auf der Expression Community-Website (möglicherweise in englischer Sprache) aufrufen.