Ändern des Status als Reaktion auf eine Benutzerinteraktion

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 Klick) fügen Sie Ereignishandlermethoden hinzu, die die Methode GoToState aufrufen.

Weitere Informationen finden Sie unter GoToState in MSDN.

Dd185503.alert_note(DE-DE,Expression.30).gifHinweis:

Wenn Sie in einem Microsoft Silverlight-Projekt 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 Klick

Um den Status zu ändern, können Sie das GoToStateAction Verhalten oder eine Ereignishandlermethode verwenden.

Weitere Informationen zur Verwendung eines Verhaltens finden Sie unter Hinzufügen eines Verhaltens zu einem Objekt.

Das folgende Verfahren zeigt, wie Sie eine Ereignishandlermethode hinzufügen, um den Status zu ändern.

  1. Wenn Sie bereits Statusgruppen und Status erstellt haben, können Sie unterschiedliche visuelle Statusoptionen und Übergänge für ein Benutzersteuerelement definieren. 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.

    Weitere Informationen finden Sie unter Definieren verschiedener visueller Statusmöglichkeiten und Übergangszeiten für Benutzersteuerelemente.

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

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

  3. Wählen Sie im Panel 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 Ereignisse Dd185503.6c67bb3b-e8a2-4a63-bad5-54d5c15b04dd(DE-DE,Expression.30).png, um von der Eigenschaften- in die Ereignisansicht zu wechseln.

    Dd185503.alert_tip(DE-DE,Expression.30).gifTipp:

    Um im Eigenschaftenpanel zur Eigenschaftenansicht zurückzukehren, klicken Sie auf Eigenschaften Dd185503.cee1494c-ef95-4dd4-9fbc-9d02edfa78b7(DE-DE,Expression.30).png.

  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.30).png

    Dd185503.alert_tip(DE-DE,Expression.30).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 die CodeBehind-Datei für das Benutzersteuerelement in einem Code-Editor geöffnet und der Code für die Ereignishandlermethode eingefügt.

    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 finden Sie unter Ändern 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 fett gedruckten 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

  • Wenn Sie 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 in den externen Code-Editor (in der Regel Microsoft Visual Studio) und laden Sie die Projektmappe erneut. Beim Neuladen werden die neuen Dateien berücksichtigt, die die fehlende Klasse definieren.

  • Wenn die Fehlermeldung "Cannot load the solution" (Lösung kann nicht geladen werden) in Visual Studio 2008 erscheint, sind möglicherweise die Silverlight Tools für Visual Studio 2008 nicht installiert. Installieren Sie die Tools und geben Sie im Ereignispanel in Expression Blend einen Namen ein.

    Weitere Informationen finden Sie unter Microsoft (möglicherweise in englischer Sprache).

  • 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 das Objektepanel (klicken Sie auf Objekte Dd185503.0d8b8d29-1af9-418f-8741-be3097d76eab(DE-DE,Expression.30).png), wählen Sie das Benutzersteuerelement aus der Projektkategorie 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 Silverlight installiert.

    Weitere Informationen finden Sie unter Installieren von Werkzeugen und Laufzeit von Silverlight.

Nächste Schritte

  • Sie können Animation hinzufügen. Beispielsweise können Sie definieren, dass sich die Schaltfläche kontinuierlich dreht, wenn mit dem Zeiger auf die Schaltfläche gezeigt wird. 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.