Formatieren von Karten in Microsoft Teams

Wichtig

Diese Dokumentation gilt als veraltet. Umfassende Informationen und Ressourcen zur Textformatierung in adaptiven Karten finden Sie im Dokumentationshub zu adaptiven Karten.

Screenshot: Startseite der Microsoft Adaptive Karten-Website.

Der Dokumentationshub für adaptive Karten bietet eine vollständige und neueste Referenzdokumentation, einen aktualisierten Adaptive Card Designer, integrierte JSON-Beispiele, bewährte Designmethoden und einen detaillierten Versionsverlauf der Features von adaptiven Karten. Weitere Informationen finden Sie unter Einführung des Dokumentationshubs zu adaptiven Karten und neuer Updates zu adaptiven Karten.

Im Folgenden werden die beiden Möglichkeiten zum Hinzufügen von Rich-Text-Formatierungen für Ihre Karten beschrieben:

Karten unterstützen die Formatierung nur in der Texteigenschaft, nicht in den Titel- oder Untertiteleigenschaften. Die Formatierung kann je nach Kartentyp mithilfe einer Teilmenge von XML- oder HTML-Formatierung oder mit Markdown angegeben werden. Für die aktuelle und zukünftige Entwicklung von adaptiven Karten wird die Markdownformatierung empfohlen.

Die Formatierungsunterstützung unterscheidet sich zwischen Kartentypen. Das Rendering der Karte kann sich zwischen dem Desktop- und dem mobilen Microsoft Teams-Client und Teams im Desktopbrowser leicht unterscheiden.

Sie können ein Inlinebild mit einer beliebigen Teams-Karte einschließen. Unterstützte Bildformate sind PNG-, JPG- oder GIF-Formate. Halten Sie die Abmessungen innerhalb von 1024 x 1024 Pixel und die Dateigröße kleiner als 1 MB. Animierte .gif Bilder werden nicht unterstützt. Weitere Informationen finden Sie unter Typen von Karten.

Sie können adaptive Karten und Connectorkarten für Microsoft 365-Gruppen mit Markdown formatieren, die bestimmte unterstützte Formatvorlagen enthalten.

Formatieren von Karten mit Markdown

Die folgenden Kartentypen unterstützen Markdownformatierung in Teams:

  • Adaptive Karten: Markdown wird im Feld "Adaptive Karten" Textblock unterstützt und Fact.Title und .Fact.Value HTML wird in adaptiven Karten nicht unterstützt.
  • Konnektorkarten für Microsoft 365-Gruppen: Markdown und eingeschränktes HTML werden in Konnektorkarten für Microsoft 365-Gruppen in den Textfeldern unterstützt.

Hinweis

Markdown wird für OAuth-Anmeldekarten in Bots nicht unterstützt.

Sie können Zeilenumbrüche für adaptive Karten verwenden, indem Sie die Escape-Sequenzen \r oder \n für Zeilenumbrüche in Listen verwenden. Die Formatierung unterscheidet sich für adaptive Karten zwischen der Desktopversion und den mobilen Versionen von Teams. Kartenbasierte Erwähnungen werden in Web-, Desktop- und mobilen Clients unterstützt. Sie können die Eigenschaft für die Informationsmaskierung verwenden, um bestimmte Informationen zu maskieren, beispielsweise das Kennwort oder vertrauliche Informationen von Benutzern innerhalb des Input.Text-Eingabeelements der adaptiven Karte. Sie können die Breite einer adaptiven Karte mithilfe des width-Objekts erweitern. Sie können die Typeahead-Unterstützung innerhalb adaptiver Karten aktivieren und den Satz von Eingabeoptionen filtern, während der Benutzer Text eingibt. Sie können die msteams Eigenschaft verwenden, um die Möglichkeit zum selektiven Anzeigen von Bildern in der Stage-Ansicht hinzuzufügen.

Die Formatierung unterscheidet sich für adaptive Karten und Connector-Karten zwischen der Desktopversion und den mobilen Versionen von Teams. In diesem Abschnitt können Sie das Beispiel für das Markdownformat für adaptive Karten und Connector-Karten durchgehen.

Die folgende Tabelle enthält die unterstützten Formatvorlagen für Textblock, Fact.Title und Fact.Value:

Format Beispiel Markdown
Fett Bold **Bold**
Kursiv Italic _Italic_
Unsortierte Liste
  • text
  • text
- Item 1\r- Item 2\r- Item 3
Sortierte Liste
  1. text
  2. text
1. Green\r2. Orange\r3. Blue
Hyperlinks Bing [Title](url)

Die folgenden Markdown-Tags werden nicht unterstützt:

  • Überschriften
  • Tabellen
  • Bilder
  • Vorformatierter Text
  • Blockzitate

Zeilenumbrüche für adaptive Karten

Sie können die Escape-Sequenzen \r oder \n für Zeilenumbrüche in Listen verwenden. Die Verwendung von \n\n in Listen bewirkt, dass das nächste Element in der Liste eingezogen wird. Wenn Sie Zeilenumbrüche an anderer Stelle im TextBlock benötigen, verwenden Sie \n\n.

Unterschiede für adaptive Karten zwischen Mobilgeräten und Desktops

Auf dem Desktop erscheint die Markdownformatierung für adaptive Karten wie in der folgenden Abbildung dargestellt, sowohl in Webbrowsern als auch in der Teams-Clientanwendung:

Der Screenshot zeigt ein Beispiel für die adaptive Kartenmarkdownformatierung im Teams-Desktopclient.

Unter iOS wird die adaptive Kartenmarkdown-Formatierung wie in der folgenden Abbildung dargestellt angezeigt: Screenshot: Beispiel für adaptive Kartenmarkdownformatierung in der Teams iOS-Plattform.

Unter Android erscheint die Markdownformatierung für adaptive Karten wie in der folgenden Abbildung dargestellt:

Screenshot: Beispiel für adaptive Kartenmarkdownformatierung in der Teams-Android-Plattform.

Weitere Informationen zur Datums- und Uhrzeitformatierung und Lokalisierung in adaptiven Karten finden Sie unter Textfeatures in adaptiven Karten.

Formatbeispiel für adaptive Karten

Der folgende Code zeigt ein Beispiel der Formatierung für adaptive Karten:

{
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
        {
            "type": "TextBlock",
            "text": "This is some **bold** text"
        },
        {
            "type": "TextBlock",
            "text": "This is some _italic_ text"
        },
        {
            "type": "TextBlock",
            "text": "- Bullet \r- List \r",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "text": "1. Numbered\r2. List\r",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "text": "Check out [Adaptive Cards](https://adaptivecards.microsoft.com/?topic=welcome)"
        }
    ]
}

Adaptive Karten unterstützen Emojis. Die folgende Karten-Nutzlast zeigt eine adaptive Karte mit einem Emoji:

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [
    {
      "type": "Container",
      "items": [
        {
          "type": "TextBlock",
          "text": "Publish Adaptive Card with emojis 🥰",
          "weight": "bolder",
          "size": "medium"
        }
      ]
    }
  ]
}

Screenshot: Adaptive Karte mit einem Emoji.

Hinweis

Wenn Sie REST-APIs verwenden, legen charset=UTF-8 Sie in Ihren Anforderungsheadern fest, dass Emojis in adaptiven Karten hinzugefügt werden.

Unterstützung von Erwähnungen innerhalb adaptiver Karten

Sie können innerhalb eines adaptiven Kartentexts für Bots und Nachrichtenerweiterungsantworten hinzufügen @mentions . Zum Hinzufügen @mentions von Karten folgen Sie der gleichen Benachrichtigungslogik und dem gleichen Rendering wie bei nachrichtenbasierten Erwähnungen in Kanal- und Gruppenchatunterhaltungen.

Bots und Nachrichtenerweiterungen können Erwähnungen innerhalb des Karteninhalts in den Elementen TextBlock und FactSet enthalten.

Hinweis

  • Kanal- und Teamerwähnungen werden in Bot-Nachrichten nicht unterstützt.
  • Sie können @mention mehrere Benutzer in einer einzigen adaptiven Kartennachricht verwenden. Stellen Sie jedoch sicher, dass das Größenlimit der Nachricht 28 KB für eingehende Webhooks und 100 KB für eine Bot-Nachricht nicht überschreitet.
  • Adaptive Karten, die von eingehenden Webhooks gesendet werden, unterstützen nur Benutzererwähnungen und keine Bot-Erwähnungen.

Um eine Erwähnung in eine adaptive Karte aufzunehmen, muss Ihre App die folgenden Elemente enthalten:

  • <at>username</at> in den unterstützten Elementen der adaptiven Karte.
  • Das mention-Objekt innerhalb einer msteams-Eigenschaft im Karteninhalt enthält die Teams-Benutzer-ID des erwähnten Benutzers.
  • Die userId ist für Ihre Bot-ID und einen bestimmten Benutzer eindeutig. Sie kann für @mention einen bestimmten Benutzer verwendet werden. Die userId kann mithilfe einer der in Benutzer-ID abrufen erwähnten Optionen abgerufen werden.

Beispiel einer adaptiven Karte mit einer Erwähnung

Der folgende Code zeigt ein Beispiel einer adaptiven Karte mit einer Erwähnung:

{
  "contentType": "application/vnd.microsoft.card.adaptive",
  "content": {
    "type": "AdaptiveCard",
    "body": [
      {
        "type": "TextBlock",
        "text": "Hi <at>John Doe</at>"
      }
    ],
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0",
    "msteams": {
      "entities": [
        {
          "type": "mention",
          "text": "<at>John Doe</at>",
          "mentioned": {
            "id": "29:123124124124",
            "name": "John Doe"
          }
        }
      ]
    }
  }
}

Microsoft Entra-Objekt-ID und UPN in Benutzer-Erwähnung

Die Teams-Plattform ermöglicht es Ihnen, Benutzer mit ihrer Microsoft Entra-Objekt-ID und ihrem Benutzerprinzipalnamen (User Principle Name, UPN) zusätzlich zu den vorhandenen Erwähnungs-IDs zu Erwähnungen. Bots mit adaptiven Karten und Connectors mit eingehenden Webhooks unterstützen die zwei Benutzererwähnungs-IDs.

In der folgenden Tabelle werden die neu unterstützten Benutzererwähnungs-IDs beschrieben:

IDs Unterstützende Funktionen Beschreibung Beispiel
Microsoft Entra-Objekt-ID Bot, Connector Objekt-ID des Microsoft Entra-Benutzers 49c4641c-ab91-4248-aebb-6a7de286397b
UPN Bot, Connector UPN eines Microsoft Entra-Benutzers john.smith@microsoft.com

Benutzererwähnung in Bots mit adaptiven Karten

Bots unterstützen die Erwähnung von Benutzern mit der Microsoft Entra-Objekt-ID und dem UPN zusätzlich zu den vorhandenen IDs. Die Unterstützung für zwei neue IDs ist in Bots für Textnachrichten, adaptiven Kartentext und die Nachrichtenerweiterungsantwort verfügbar. Bots unterstützen die Erwähnungs-IDs in Unterhaltungen und invoke-Szenarien. Der Benutzer erhält eine Aktivitätsfeed-Benachrichtigung, wenn er sich bei den IDs befindet @mentioned .

Hinweis

Schemaaktualisierungen und UI/UX-Änderungen sind für Benutzererwähnungen mit adaptiven Karten im Bot nicht erforderlich.

Beispiel

Beispiel für die Benutzererwähnung in Bots mit adaptiven Karten wie folgt:

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.0",
  "type": "AdaptiveCard",
  "body": [
    {
      "type": "TextBlock",
      "text": "Hi <at>Adele UPN</at>, <at>Adele Microsoft Entra ID</at>"
    }
  ],
  "msteams": {
    "entities": [
      {
        "type": "mention",
        "text": "<at>Adele UPN</at>",
        "mentioned": {
          "id": "AdeleV@contoso.onmicrosoft.com",
          "name": "Adele Vance"
        }
      },
      {
        "type": "mention",
        "text": "<at>Adele Microsoft Entra ID</at>",
        "mentioned": {
          "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd",
          "name": "Adele Vance"
        }
      }
    ]
  }
}

Die folgende Abbildung veranschaulicht die Benutzererwähnung mit adaptiver Karte im Bot:

Screenshot: Erwähnung eines Benutzers im Bot mit adaptiver Karte.

Benutzererwähnung im eingehenden Webhook mit adaptiven Karten

Eingehende Webhooks unterstützen ab sofort die Erwähnung von Benutzern in adaptiven Karten mit der Microsoft Entra-Objekt-ID und dem UPN.

Hinweis

  • Aktivieren Sie die Erwähnung von Benutzern im Schema für eingehende Webhooks, um die Objekt-ID und den UPN von Microsoft Entra zu unterstützen.
  • UI/UX-Änderungen sind für Benutzererwähnungen mit Microsoft Entra-Objekt-ID und UPN nicht erforderlich.
Beispiel

Beispiel für die Benutzererwähnung im eingehenden Webhook wie folgt:

{
    "type": "message",
    "attachments": [
        {
        "contentType": "application/vnd.microsoft.card.adaptive",
        "content": {
            "type": "AdaptiveCard",
            "body": [
                {
                    "type": "TextBlock",
                    "size": "Medium",
                    "weight": "Bolder",
                    "text": "Sample Adaptive Card with User Mention"
                },
                {
                    "type": "TextBlock",
                    "text": "Hi <at>Adele UPN</at>, <at>Adele Microsoft Entra ID</at>"
                }
            ],
            "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
            "version": "1.0",
            "msteams": {
                "entities": [
                    {
                        "type": "mention",
                        "text": "<at>Adele UPN</at>",
                        "mentioned": {
                          "id": "AdeleV@contoso.onmicrosoft.com",
                          "name": "Adele Vance"
                        }
                      },
                      {
                        "type": "mention",
                        "text": "<at>Adele Microsoft Entra ID</at>",
                        "mentioned": {
                          "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd",
                          "name": "Adele Vance"
                        }
                      }
                ]
            }
        }
    }]
}

Die folgende Abbildung veranschaulicht die Benutzererwähnung im eingehenden Webhook:

Der Screenshot zeigt eine Benutzer-Erwähnung in eingehendem Webhook.

Symbol "People" in einer adaptiven Karte

Das Symbol "People" hilft Benutzern, die Bilder von Benutzern auf einer adaptiven Karte anzuzeigen. Sie können ein Bild einfügen und alle unterstützten Eigenschaften auf Bilder anwenden.

Es gibt zwei Arten von Personensymbolen, die in einer adaptiven Karte unterstützt werden:

  • Persona: Wenn Sie einen einzelnen Benutzer in einer adaptiven Karte anzeigen möchten, werden das Personensymbol und der Name des Benutzers angezeigt.

    Der folgende JSON-Code ist ein Beispiel für eine Persona-Karte:

    {
      "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
      "type": "AdaptiveCard",
      "version": "1.0.0",
      "body": [
    {
          "type": "TextBlock",
          "text": "Persona",
          "weight": "bolder"
        },
        {
          "type": "Component",
          "name": "graph.microsoft.com/user",
          "view": "compact",
          "properties": {
            "id": "65f50003-e15d-434a-9e14-0fcfeb3d7817",
            "displayName": "Daniela Mandera",
            "userPrincipalName": "damandera@microsoft.com"
          }
        }
      ]
    }
    
  • Personensatz: Wenn Sie mehrere Benutzer in einer adaptiven Karte anzeigen möchten, wird nur das Personensymbol der Benutzer angezeigt.

    Der folgende JSON-Code ist ein Beispiel für ein Persona-Set:

    {
      "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
      "type": "AdaptiveCard",
      "version": "1.0.0",
      "body": [
        {
          "type": "TextBlock",
          "text": "Persona Set",
          "weight": "bolder"
        },
        {
          "type": "Component",
          "name": "graph.microsoft.com/users",
          "view": "compact",
          "properties": {
            "users": [
              {
                "id": "65f50003-e15d-434a-9e14-0fcfeb3d7817",
                "displayName": "Daniela Mandera",
                "userPrincipalName": "damandera@microsoft.com"
              },
              {
                "id": "65f50003-e15d-434a-9e14-0fcfeb3d7817",
                "displayName": "Daniela Mandera",
                "userPrincipalName": "damandera@microsoft.com"
              }
            ]
          }
        }
      ]
    }
    

    Hinweis

    Sie können den Stil der Persona und des Persona-Sets nicht in einer adaptiven Karte anpassen.

Das folgende Bild ist ein Beispiel für das Symbol "Personen" in einer adaptiven Karte:

Der Screenshot zeigt ein Beispiel für das Personen- und Personensatzsymbol

Schema

In der folgenden Tabelle sind die Eigenschaften des Component Elements aufgeführt:

Eigenschaftenname Beschreibung
type component
name Werden verwendetgraph.microsoft.com/users, um alle Mitglieder in der organization zu durchsuchen
view compact
properties An die Komponentenvorlage übergeben
id MRT des Benutzers
displayName Name des Benutzers
userPrincipalName Der Prinzipalname des Benutzers des Kontos in Microsoft Entra ID

Adaptive Komponenten sind Komponenten auf hoher Ebene, die von Vorlagen und nativen adaptiven Kartenelementen unterstützt werden . Der Typ component kann an einer beliebigen Stelle innerhalb des Kartenkörpers verwendet werden, und die Komponentendaten werden im properties Attribut definiert. Die Komponentendaten darunter properties werden direkt an die Komponente übergeben. Die properties Eigenschaft definiert das Format für Persona und Persona Set, und alle anderen Eigenschaften werden properties im Schema der adaptiven Karte vom component Typ ignoriert.

Ihr Bot kann die Liste der Mitglieder und ihre grundlegenden Benutzerprofile abfragen, einschließlich Teams-Benutzer-IDs und Microsoft Entra-Informationen wie name, id, und userPrincipalName. Weitere Informationen finden Sie unter Abrufen der Liste oder des Benutzerprofils.

Die folgenden Bilder zeigen das Personensymbol in einer adaptiven Karte auf Microsoft Teams-Desktop- und mobilen Clients:

Desktopclient:

Screenshot: Symbole für eine Persona und Personasätze in einer adaptiven Karte im Teams-Desktopclient.

Wenn ein Benutzer auf ein Personensymbol zeigt, wird die Personen-Karte dieses Benutzers angezeigt.

Mobile Clients

Der Screenshot zeigt ein Beispiel für ein Personensymbol in einer Persona und einem Personensatz im mobilen Microsoft Teams-Client.

Der Screenshot zeigt ein weiteres Beispiel für ein Personensymbol in einer Persona und einem Persona-Set im mobilen Microsoft Teams-Client.

Wenn ein Benutzer ein Personensymbol auswählt, wird die Personen-Karte dieses Benutzers angezeigt.

Maskieren von Information in adaptiven Karten

Verwenden Sie die Eigenschaft zur Informationsmaskierung, um bestimmte Informationen zu maskieren, z. B. das Kennwort oder vertrauliche Informationen von Benutzern innerhalb des Input.TextEingabeelements der adaptiven Karte.

Hinweis

Das Feature unterstützt nur die clientseitige Informationsmaskierung. Der maskierte Eingabetext wird als Klartext an die HTTPS-Endpunktadresse gesendet, die während der Bot-Konfiguration angegeben wurde.

Um Informationen in adaptiven Karten zu maskieren, fügen Sie die style Eigenschaft zum Typinput.text hinzu, und legen Sie ihren Wert auf Kennwort fest.

Beispiel für adaptive Karte mit Maskierungseigenschaft

Der folgende Code zeigt ein Beispiel für eine adaptive Karte mit Maskierungseigenschaft:

{
    "type": "Input.Text",
    "id": "secretThing",
    "style": "password",
},

Die folgende Abbildung zeigt ein Beispiel für die Maskierung von Informationen in adaptiven Karten:

Screenshot: Maskierungsinformationsansicht in einer adaptiven Karte.

Adaptive Karte in ganzer Breite

Sie können die msteams Eigenschaft verwenden, um die Breite einer adaptiven Karte zu erweitern und zusätzlichen Platz im Zeichenbereich zu nutzen. Der nächste Abschnitt enthält Informationen zur Verwendung der Eigenschaft.

Hinweis

Testen Sie Ihre Adaptive Card in voller Breite in schmalen Formfaktoren, z. B. für Mobilgeräte und Besprechungsseiten, um sicherzustellen, dass Inhalte nicht abgeschnitten werden.

Erstellen von Karten in ganzer Breite

Um eine adaptive Karte in ganzer Breite zu erstellen, muss das width-Objekt der msteams-Eigenschaft im Karteninhalt auf Full festgelegt werden.

Beispiel einer adaptiven Karte in ganzer Breite

Um eine adaptive Karte in ganzer Breite zu erstellen, muss Ihre App die Elemente aus dem folgenden Codebeispiel enthalten:

{
    "type": "AdaptiveCard",
    "body": [{
        "type": "Container",
        "items": [{
            "type": "TextBlock",
            "text": "Digest card",
            "size": "Large",
            "weight": "Bolder"
        }]
    }],

    "msteams": {
        "width": "Full"
    },
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.2"
}

Die folgende Abbildung zeigt eine adaptive Karte in ganzer Breite:

Screenshot: Adaptive Karte in voller Breite.

Die folgende Abbildung zeigt die Standardansicht einer adaptiven Karte, wenn Sie die width Eigenschaft nicht auf "Vollständig" festgelegt haben:

Screenshot: Adaptive Karte mit kleiner Breite.

Adaptives Kartenlayout

Adaptive Karten passen ihr Aussehen und Verhalten automatisch an den Stil der Hostanwendung an, verfügen jedoch über ein festes Layout, das für alle mobilen und Desktop-Clients von Teams identisch bleibt. Sie müssen Ihre adaptiven Karten so entwerfen, dass sie auf jedem Gerät gut aussehen, um eine verbesserte Benutzererfahrung über Chats, Kanäle und Besprechungschats hinweg bereitzustellen. In diesem Artikel erfahren Sie mehr über das Entwerfen von responsiven adaptiven Karten.

Adaptives Kartenlayout hilft Ihnen, Karten mit unterschiedlichen Layouts zu entwerfen, die auf unterschiedliche Kartenbreiten ausgerichtet sind.

Entwerfen von responsiven adaptiven Karten

Verwenden Sie die targetWidth Eigenschaft für jedes Element, um:

  • Ein- oder Ausblenden beliebiger Elemente basierend auf der Breite der Karte.

  • Legen Sie unterschiedliche Zielbreiten für verschiedene Elemente fest, um unterschiedliche Layouts zu erstellen.

    In der folgenden Tabelle sind die verfügbaren targetWidth Werte aufgeführt:

    Wert Beschreibung
    veryNarrow Das Element wird angezeigt, wenn die Breite der adaptiven Karte sehr schmal ist, z. B. in einem Besprechungschat.
    narrow Das Element wird angezeigt, wenn die Breite der adaptiven Karte schmal ist, z. B. bei einem Mobiltelefon im Hochformat.
    standard Das Element wird angezeigt, wenn die Breite der adaptiven Karte Standard ist, z. B. auf einem Mobiltelefon im Querformat, auf einem Tablet im Hochformat oder in einem Chat auf dem Desktop.
    wide Das Element wird angezeigt, wenn die Breite der adaptiven Karte breit ist, z. B. auf einem Tablet im Querformat, in einem Kanal oder in einem Chat auf dem Desktop, wenn Sie die volle Breite der Karte festlegen.

    Sie können die Eigenschaft auch festlegen, um targetWidth ein Element für einen Bereich von Kartenbreiten mit den atLeast Präfixen und atMost sichtbar zu machen. Sie können ein Element beispielsweise nur dann sichtbar machen, wenn die Kartenbreite "Standard oder höher" ist oder nur, wenn die Kartenbreite "schmal oder darunter" ist. Die folgende Tabelle enthält eine Anleitung, wie Sie ein Element für einen Bereich von Kartenbreiten sichtbar machen:

    Beispiel Beschreibung
    "targetWidth": "atLeast:standard" Das Element ist nur sichtbar, wenn die Breite der adaptiven Karte mindestens dem Standard entspricht, d. h. Standard oder breit ist.
    "targetWidth": "atMost:narrow" Das Element ist nur sichtbar, wenn die Breite der adaptiven Karte höchstens schmal ist, d. h. sehr schmal oder schmal bedeutet.

    Hinweis

    Sie müssen nicht alle Elemente festlegen targetWidth . Wenn Sie kein Element festlegentargetWidth, ist das Element unabhängig von der Breite der Karte immer sichtbar.

Im Folgenden finden Sie JSON-Beispiele für eine adaptive Karte, die ohne Verwendung targetWidth entworfen und zur VerwendungtargetWidth geändert wurde:

  • Adaptive Karte entworfen ohne Verwendung von targetWidth:

    {
      "type": "AdaptiveCard",
      "body": [
        {
          "type": "ColumnSet",
          "columns": [
            {
              "type": "Column",
              "items": [
                {
                  "type": "Image",
                  "style": "Person",
                  "url": "https://aka.ms/AAp9xo4",
                  "size": "Small"
                }
              ],
              "width": "auto"
            },
            {
              "type": "Column",
              "spacing": "medium",
              "verticalContentAlignment": "center",
              "items": [
                {
                  "type": "TextBlock",
                  "weight": "Bolder",
                  "text": "David Claux",
                  "wrap": true
                }
              ],
              "width": "auto"
            },
            {
              "type": "Column",
              "spacing": "medium",
              "items": [
                {
                  "type": "TextBlock",
                  "text": "Platform Architect",
                  "isSubtle": true,
                  "wrap": true
                }
              ],
              "width": "stretch",
              "verticalContentAlignment": "center"
            }
          ]
        }
      ],
      "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
      "version": "1.5"
    }
    
    

    Die folgenden Bilder zeigen das Rendering der adaptiven Karte für unterschiedliche Kartenbreiten:

    • Wenn die Breite der Karte breit ist, sieht die Karte gut aus.

      Der Screenshot zeigt, wie eine adaptive Karte mit einer ebenso breiten Kartenbreite gerendert wird, wenn die Karte ohne Verwendung der targetWidth-Eigenschaft entworfen wird.

    • Wenn die Breite der Karte Standard oder schmal ist, wird die Rolle zusammengedrückt.

      Der Screenshot zeigt, wie eine adaptive Karte mit einer standardmäßigen oder schmalen Kartenbreite gerendert wird, wenn die Karte ohne Verwendung der targetWidth-Eigenschaft entworfen wird.

    • Wenn die Breite der Karte sehr schmal ist, werden Name und Rolle erheblich zusammengedrückt.

      Der Screenshot zeigt, wie eine adaptive Karte mit einer sehr schmalen Kartenbreite gerendert wird, wenn die Karte ohne Verwendung der targetWidth-Eigenschaft entworfen wird.

  • Adaptive Karte aktualisiert, um reaktionsfähig zu sein, mit targetWidth:

      {
        "type": "AdaptiveCard",
        "body": [
          {
            "type": "ColumnSet",
            "columns": [
              {
                "type": "Column",
                "targetWidth": "atLeast:narrow",
                "items": [
                  {
                    "type": "Image",
                    "style": "Person",
                    "url": "https://aka.ms/AAp9xo4",
                    "size": "Small"
                  }
                ],
                "width": "auto"
              },
              {
                "type": "Column",
                "spacing": "medium",
                "verticalContentAlignment": "center",
                "items": [
                  {
                    "type": "TextBlock",
                    "weight": "Bolder",
                    "text": "David Claux",
                    "wrap": true
                  },
                  {
                    "type": "TextBlock",
                    "targetWidth": "atMost:narrow",
                    "spacing": "None",
                    "text": "Platform Architect",
                    "isSubtle": true,
                    "wrap": true
                  }
                ],
                "width": "auto"
              },
              {
                "type": "Column",
                "targetWidth": "atLeast:standard",
                "spacing": "medium",
                "items": [
                  {
                    "type": "TextBlock",
                    "text": "Platform Architect",
                    "isSubtle": true,
                    "wrap": true
                  }
                ],
                "width": "stretch",
                "verticalContentAlignment": "center"
              }
            ]
          }
        ],
        "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
        "version": "1.5"
      }
    

    Sehen wir uns an, wie dieselbe adaptive Karte nach Verwendung der targetWidth Eigenschaft für verschiedene Kartenbreiten gerendert wird:

    • Auch wenn die Breite der Karte breit ist, sieht die Karte immer noch gut aus.

      Der Screenshot zeigt, wie eine adaptive Karte gerendert wird, wenn die targetWidth-Eigenschaft breit ist.

    • Wenn die Breite der Karte Standard oder schmal ist, wird die Rolle unter den Namen verschoben, da es keinen horizontalen Platz gibt, um sie nebeneinander anzuzeigen.

      Der Screenshot zeigt, wie eine adaptive Karte gerendert wird, wenn die targetWidth-Eigenschaft

    • Wenn die Breite der Karte sehr schmal ist, können wir das Bild ausblenden und nur die aussagekräftigsten Informationen behalten.

      Der Screenshot zeigt, wie eine adaptive Karte gerendert wird, wenn die targetWidth-Eigenschaft sehr Narrow ist.

Weitere Informationen zum Entwerfen einer adaptiven Karte finden Sie unter Entwerfen adaptiver Karten für Ihre Teams-App.

Typeahead-Unterstützung

Wenn Benutzer innerhalb des Input.ChoiceSet-Schemaelements zum Filtern und Auswählen einer beträchtlichen Anzahl von Auswahlmöglichkeiten auffordert werden, kann die Aufgabenvervollständigung erheblich verlangsamt werden. Die Unterstützung von Typeahead innerhalb adaptiver Karten kann die Eingabeauswahl vereinfachen, indem der Satz von Eingabeoptionen eingegrenzt oder gefiltert wird, während der Benutzer Text eingibt.

Um Typeahead in Input.Choiceset zu aktivieren, legen Sie style auf filtered fest, und stellen Sie sicher, dass isMultiSelect auf false festgelegt ist.

Beispiel für eine adaptive Karte mit Typeahead-Unterstützung

Der folgende Code zeigt ein Beispiel für eine adaptive Karte mit Typeahead-Unterstützung:

{
   "type": "Input.ChoiceSet",
   "label": "Select a user",
   "isMultiSelect": false,
   "choices":  [
      { "title": "User 1", "value": "User1" },
      { "title": "User 2", "value": "User2" }
    ],
   "style": "filtered"
}

Stageview für Bilder in adaptiven Karten

In einer adaptiven Karte können Sie die msteams Eigenschaft verwenden, um die Möglichkeit zum selektiven Anzeigen von Bildern in Stageview hinzuzufügen. Wenn Benutzer mit dem Mauszeiger auf die Bilder zeigen, wird ein Erweiterungssymbol angezeigt, für welches das allowExpand-Attribut auf true festgelegt ist. Der folgende Code ist ein Beispiel für die msteams Eigenschaft:

{
    "type": "AdaptiveCard",
     "body": [
          {
            "type": "Image",
            "url": "https://picsum.photos/200/200?image=110",
            "msTeams": {
              "allowExpand": true
            }
          }
     ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.2"
}

Wenn Benutzer mit dem Mauszeiger auf das Bild zeigen, wird wie in der folgenden Abbildung ein Erweiterungssymbol in der oberen rechten Ecke angezeigt:

Screenshot: Adaptive Karte mit erweiterbarem Bild.

Das Bild wird in der Stage-Ansicht angezeigt, wenn der Benutzer das Erweiterungssymbol auswählt, wie in der folgenden Abbildung gezeigt:

Screesnhots zeigt das Bild erweitert auf Stageview.

In der Stageview können Benutzer das Bild vergrößern und verkleinern. Sie können die Bilder auf Ihrer adaptiven Karte auswählen, die über diese Funktion verfügen muss.

Hinweis

  • Die Funktion zum Vergrößern und Verkleinern gilt nur für Bildelemente, die in einer adaptiven Karte den Typ „Bild“ aufweisen.
  • Für mobile Teams-Apps ist die Stageview-Funktionalität für Bilder in adaptiven Karten standardmäßig verfügbar. Benutzer können Adaptive Card-Bilder in Stageview anzeigen, indem sie einfach auf das Bild tippen, unabhängig davon, ob das allowExpand Attribut vorhanden ist oder nicht.

CodeBlock in adaptiven Karten

Das CodeBlock Element ermöglicht es Ihnen, Codeausschnitte als detailreich formatierte Adaptive Karten in Teams-Chats, -Kanälen und -Besprechungen freizugeben. Adaptive Karten mit dem CodeBlock Element machen den Codeausschnitt leicht lesbar, da die Einzüge, Nummerierungen und Syntaxhervorhebungen der Programmiersprache entsprechen. Darüber hinaus können Sie interaktive Schaltflächen hinzufügen, um den Code an der Quelle anzuzeigen oder den Code in integrierten Entwicklungsumgebungen (IDEs) wie Microsoft Visual Studio oder Microsoft Visual Studio Code zu bearbeiten.

Der folgende Screenshot zeigt eine adaptive Karte mit einem Codeausschnitt:

Screenshot: Adaptive Karte mit einem Codeausschnitt.

Das CodeBlock Element unterstützt die folgenden Sprachen:

Sprache Unterstützt Sprache Unterstützt
Bash ✔️ JSON ✔️
C ✔️ Perl ✔️
C++ ✔️ PHP ✔️
C# ✔️ PowerShell ✔️
CSS ✔️ Python ✔️
DOS ✔️ SQL ✔️
OK ✔️ TypeScript ✔️
GraphQL ✔️ Visual Basic ✔️
HTML ✔️ Verilog ✔️
Java ✔️ VHDL ✔️
JavaScript ✔️ XML ✔️

Hinweis

Das CodeBlock Element erkennt Nur-Text als Sprache, wenn Sie den Enumerationswert in der language Eigenschaft des Schemas festlegenPlainText.

Der folgende Code ist ein Beispiel für eine adaptive Karte, die einen Codeausschnitt anzeigt:

{
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.5",
    "body": [
        {
            "type": "TextBlock",
            "text": "editor.js",
            "style": "heading"
        },
        {
            "type": "TextBlock",
            "text": "Lines 61 - 76"
        },
        {
            "type": "CodeBlock",
            "codeSnippet": "/**\n* @author John Smith <john.smith@example.com>\n*/\npackage l2f.gameserver.model;\n\npublic abstract strictfp class L2Char extends L2Object {\n  public static final Short ERROR = 0x0001;\n\n  public void moveTo(int x, int y, int z) {\n    _ai = null;\n    log(\"Shouldn't be called\");\n    if (1 > 5) { // what!?\n      return;\n    }\n  }\n}",
            "language": "java",
            "startLineNumber": 61
        }
    ],
    "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "View in Azure Repos",
            "url": "https://azure.microsoft.com/en-us/products/devops/repos/"
        },
        {
            "type": "Action.OpenUrl",
            "title": "Edit in vscode.dev",
            "url": "https://vscode.dev/"
        }
    ]
}

Das CodeBlock Element unterstützt die folgenden Eigenschaften:

Eigenschaft Typ Erforderlich Beschreibung
codeSnippet Zeichenfolge Ja Der Codeausschnitt, der in einer adaptiven Karte angezeigt werden soll.
language Enum Ja Die Sprache des Codeausschnitts, der in einer adaptiven Karte angezeigt werden soll.
startLineNumber Zahl Nein Die Zeilennummer in der Quelle, in der der Codeausschnitt beginnt. Wenn leer gelassen, wird standardmäßig 1 verwendet.

Tipp

  • Sonderzeichen haben bestimmte Funktionen in der codeSnippet Eigenschaft. Beispielsweise löst das Zeilenumbruchzeichen \n einen Zeilenumbruch aus.
  • Wenn Sie das Zeilenumbruchzeichen \n als Teil des Codeausschnitts in einer adaptiven Karte anzeigen möchten, stellen Sie sicher, dass Sie es wie \\n in der codeSnippet Eigenschaft mit Escapezeichen versehen. Andernfalls rendert Teams den Code nach dem \n in der nächsten Zeile der Karte.

Begrenzungen

  • Eine adaptive Karte mit dem CodeBlock Element wird nur in Web- und Desktopclients von Teams unterstützt.
  • Der Codeausschnitt in einer adaptiven Karte ist schreibgeschützt und kann nicht bearbeitet werden.
  • Eine adaptive Karte zeigt nur die ersten 10 Zeilen des Codeausschnitts an. Wenn mehr als 10 Codezeilen vorhanden sind, muss der Benutzer Erweitern auswählen, um den Rest des Codeausschnitts anzuzeigen.

Überlaufmenü "Adaptive Karten"

Die adaptive Karte in Teams unterstützt das Überlaufmenü. Sie können ein Überlaufmenü für alle sekundären Aktionen in einer adaptiven Karte auffüllen. Ein Überlaufmenü in einer adaptiven Karte kann den folgenden Karten hinzugefügt werden:

  • Aktionen: Bei Aktionen erscheinen die primären Schaltflächen auf der adaptiven Karte und die sekundären Schaltflächen befinden sich im Überlaufmenü.

  • ActionSet: ActionSet ist eine Kombination aus mehreren Aktionen in einer adaptiven Karte. Jedes Aktionsset kann über ein Überlaufmenü verfügen.

Hinweis

Eine adaptive Karte unterstützt bis zu sechs primäre Aktionen, die auf der Karte angezeigt werden können. Jede zusätzliche primäre Aktion wird im Überlaufmenü angezeigt.

Die grafische Darstellung zeigt das Überlaufmenü-Erlebnis in einer adaptiven Karte.

Überlaufmenü aktivieren

Um das Überlaufmenü zu aktivieren, konfigurieren Sie die mode Eigenschaft mit dem Wert als primary oder secondary im Schema der adaptiven Karte. In der folgenden Tabelle wird die mode Eigenschaft beschrieben:

Eigenschaft Typ Erforderlich Beschreibung
mode Enumeration (primär, sekundär) Nein Gibt an, ob es sich bei der Aktion um eine primäre oder sekundäre Aktion handelt. Sekundäre Aktionen werden in ein Überlaufmenü reduziert.

Das folgende Beispiel zeigt die mode Eigenschaft im actions Typ und im ActionSet Element:

Aktionen

Im folgenden Beispiel gibt es zwei primäre Aktionen und eine sekundäre Aktion. Die sekundäre Aktion erstellt ein Überlaufmenü.

{
   "type": "AdaptiveCard",
   "actions": [
        {
            "type": "Action.Submit",
            "title": "Set due date"
        },
        {
            "type": "Action.OpenUrl",
            "title": "View",
            "url": "https://adaptivecards.microsoft.com/?topic=welcome"
        },
        {
            "type": "Action.Submit",
            "title": "Delete",
            "mode": "secondary"
        }
    ]
}

Hinweis

Das Überlaufmenü verhält sich auf einer vom Bot gesendeten Karte und einer Nachrichtenerweiterungs-Karte für die Stammebene actions in einer adaptiven Karte unterschiedlich. Das Überlaufmenü auf einer vom Bot gesendeten Karte erscheint als Popup-Kontextmenü und auf der Nachrichtenerweiterungs-Karte in der oberen rechten Ecke unter dem Symbol "Weitere Optionen (...)". Dieses Verhalten gilt nicht für eine ActionSet adaptive Karte.

Die folgende Abbildung zeigt ein Beispiel für ein Überlaufmenü in einer vom Bot gesendeten Karte und einer Nachrichtenerweiterungs-Karte:

Screenshot zeigt ein Beispiel für das Verhalten des Überlaufmenüs in einer vom Bot gesendeten Karte und einer Messaging-Erweiterungs-Karte.

Aktionsgruppe

Im folgenden Beispiel sind alle Aktionen als sekundär gekennzeichnet, daher wird ein einzelnes Überlaufmenü auf der Karte angezeigt.

{
    "type": "ActionSet",
     "actions": [

          {
           
            "type": "Action.Submit",
            "title": "view",
            "mode": "Secondary" 
       {
       },
            "type": "Action.submit",
            "title": "Delete",
            "mode": "secondary"

       },
       {
             "type": "Action.submit",
            "title": "Delete",
            "mode": "secondary"
       }
     ]
}

Das folgende Beispiel zeigt die Überlaufmenü-Erfahrung in Microsoft Teams-Desktop- und mobilen Clients:

Wenn ein Benutzer das Überlaufmenü auf einem Desktop auswählt, werden die Schaltflächen, die als sekundär festgelegt sind, in der adaptiven Karte angezeigt.

Screenshot: Ein Beispiel für Schaltflächen in einer adaptiven Karte im Teams-Desktopclient.

Screenshot: Beispiel einer adaptiven Karte mit der Liste der Aktionen in einem Überlaufmenü im Teams-Desktopclient.

Der Screenshot zeigt ein Beispiel für eine adaptive Karte, bei der die Schaltflächen in einem Überlaufmenü im Teams-Desktopclient als sekundäre Optionen festgelegt sind.

Rahmen und abgerundete Ecken in adaptiven Karten

Adaptive Karten unterstützen eine Vielzahl von Elementen, aber zu viele Elemente überladen die Karte und beeinträchtigen die Lesbarkeit. Sie können verschiedenen Elementen in einer adaptiven Karte Rahmen hinzufügen, um sie abzugrenzen, sodass Benutzer sie einfacher unterscheiden können.

Ohne Grenzen

Der Screenshot zeigt eine adaptive Karte ohne Rahmen um die Elemente.

Mit Rahmen

Der Screenshot zeigt eine adaptive Karte mit Rahmen um die Elemente.

Sie können Adaptive Karten für mehrere Hosts verwenden. Viele dieser Gastgeber folgen zeitgenössischen Designsystemen und -rahmen. Adaptive Karten unterstützen abgerundete Ecken für verschiedene Elemente, um die Konsistenz mit diesen Hosts zu gewährleisten und mit den neuesten Designtrends Schritt zu halten. Abgerundete Ecken lassen das Design der Karte moderner und optisch ansprechender wirken und sorgen für einen weicheren visuellen Fluss.

Ohne abgerundete Ecken

Der Screenshot zeigt eine adaptive Karte ohne abgerundete Ecken zu ihren Elementen.

Mit abgerundeten Ecken

Der Screenshot zeigt eine adaptive Karte mit abgerundeten Ecken zu ihren Elementen.

Sie können Ränder und abgerundete Ecken nur den folgenden Elementen hinzufügen:

Element Rahmen Abgerundete Ecken
Container ✔️ ✔️
ColumnSet ✔️ ✔️
Column ✔️ ✔️
Table ✔️ ✔️
Image ❌ ✔️

Implementieren von Rändern und abgerundeten Ecken in adaptiven Karten

Um einem Container, ColumnSetoder Column Element einen Rahmen hinzuzufügen, legen Sie die showBorder Eigenschaft für das Element in der Nutzlast der Karte auf true fest. Um einem Table Element einen Rahmen hinzuzufügen, setzen Sie die showGridLines Eigenschaft auf true. Die Rahmenfarbe entspricht dem Stil des Elements, wie im HostConfig.json.

Eigenschaft Typ Erforderlich Beschreibung
showBorder Boolean Nein Fügt , , oder Column Elementen einen Rahmen ColumnSetContainerhinzu.
showGridLines Boolean Nein Fügt dem Table Element einen Rahmen hinzu. Standardwert: true

Um abgerundete Ecken zu einem Container, ColumnSet, Columnoder Table Element hinzuzufügen, legen Sie die roundedCorners Eigenschaft für das Element in der Nutzlast der Karte auf true fest. Um dem Image Element abgerundete Ecken hinzuzufügen, legen Sie die style Eigenschaft auf Innerhalb des Elements fest RoundedCorners .

Eigenschaft Typ Erforderlich Beschreibung
roundedCorners Boolean Nein Fügt Elemente , ColumnSet, Columnoder Table Elemente mit abgerundeten Ecken Containerhinzu.
style Zeichenfolge Nein Fügt dem Image Element abgerundete Ecken hinzu, wenn Sie den Wert auf roundedCornersfestlegen.

Die folgende JSON-Nutzlast zeigt eine adaptive Karte mit Rahmen und abgerundeten Ecken um ihre Elemente:

{
    "type": "AdaptiveCard",
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.5",
    "body": [
        {
            "type": "TextBlock",
            "text": "Below is a **ColumnSet** with borders and rounded corners:",
            "wrap": true
        },
        {
            "type": "ColumnSet",
            "showBorder": true,
            "roundedCorners": true,
            "style": "emphasis",
            "columns": [
                {
                    "type": "Column",
                    "width": "stretch",
                    "showBorder": true,
                    "roundedCorners": true,
                    "style": "accent",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "This is a **Column** with borders and rounded corners",
                            "wrap": true
                        }
                    ]
                },
                {
                    "type": "Column",
                    "width": "stretch",
                    "showBorder": true,
                    "roundedCorners": true,
                    "style": "good",
                    "items": [
                        {
                            "type": "TextBlock",
                            "text": "This is another **Column** with borders and rounded corners",
                            "wrap": true
                        }
                    ]
                }
            ]
        },
        {
            "type": "Container",
            "style": "attention",
            "showBorder": true,
            "roundedCorners": true,
            "items": [
                {
                    "type": "TextBlock",
                    "text": "This is a **Container** with borders and rounded corners",
                    "wrap": true
                }
            ]
        },
        {
            "type": "Table",
            "roundedCorners": true,
            "columns": [
                {
                    "width": 1
                },
                {
                    "width": 1
                }
            ],
            "rows": [
                {
                    "type": "TableRow",
                    "cells": [
                        {
                            "type": "TableCell",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "text": "This **Table**...",
                                    "wrap": true
                                }
                            ]
                        },
                        {
                            "type": "TableCell",
                            "items": [
                                {
                                    "type": "TextBlock",
                                    "text": "...has borders and rounded corners",
                                    "wrap": true
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "type": "TextBlock",
            "text": "The below **Image** has rounded corners:",
            "wrap": true
        },
        {
            "type": "Image",
            "url": "https://media.licdn.com/dms/image/C4E03AQF5uhIghtPzrA/profile-displayphoto-shrink_400_400/0/1517690039090?e=2147483647&v=beta&t=g1DFilNHZhah2fhaTS9ylBxGGGb2XyPA2C7LZptk4QE",
            "width": "100px",
            "style": "RoundedCorners"
        }
    ]
}

Scrollbare Container in adaptiven Karten

Ein Container mit vielen Elementen kann zu einer langen, unlesbaren Karte führen. Verwenden Sie die maxHeight Eigenschaft, um die maximale Höhe des Containers zu definieren. Wenn der Container eine maximale Höhe aufweist und sein Inhalt diese Höhe überschreitet, wird eine vertikale Bildlaufleiste angezeigt.

So wird die maxHeight Eigenschaft definiert:

Eigenschaft Typ Beschreibung
maxHeight Zeichenfolge Definiert die maximale Höhe des Containers. Diese Eigenschaft ist in Container, Column, TableCellund auch in anderen Containern verfügbar.
Sie müssen den Wert im <number>px Format definieren.

Die folgende Karten-Nutzlast zeigt einen Container mit einer Bildlaufleiste:

{
    "type": "AdaptiveCard",
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.5",
    "body": [
        {
            "type": "TextBlock",
            "text": "This is a scrollable container",
            "wrap": true,
            "size": "ExtraLarge",
            "weight": "Bolder"
        },
        {
            "type": "Container",
            "style": "emphasis",
            "showBorder": true,
            "maxHeight": "100px",
            "items": [
                {
                    "type": "TextBlock",
                    "text": "Item 1",
                    "size": "ExtraLarge"
                },
                {
                    "type": "TextBlock",
                    "text": "Item 2",
                    "size": "ExtraLarge"
                },
                {
                    "type": "TextBlock",
                    "text": "Item 3",
                    "size": "ExtraLarge"
                }
            ]
        }
    ]
}

Screenshot: Scrollbarer Container in einer adaptiven Karte im Teams-Desktopclient.

Schaltfläche "Verbindung" in adaptiven Karten

Die zusammengesetzte Schaltfläche ist eine besondere Art von Schaltfläche mit einem Symbol, einem Titel und einer Beschreibung. Sie können mithilfe des CompoundButton Elements eine zusammengesetzte Schaltfläche hinzufügen. Mit diesem Element können Sie die Darstellung von Eingabeaufforderungsstartern in einer adaptiven Karte nachbilden.

Hier sind die Eigenschaften des CompoundButton Elements:

Eigenschaft Erforderlich Typ Beschreibung
type ✔️ Zeichenfolge Muss CompoundButton sein.
title ✔️ Zeichenfolge Titel der Schaltfläche. Markdown wird nicht unterstützt.
id Zeichenfolge Eindeutiger Bezeichner für das Element oder die Aktion.
requires Objekt Eine Liste der Funktionen, die das Element von der Host-App unterstützen muss. Wenn die Host-App mindestens eine der aufgeführten Funktionen nicht unterstützt, wird entweder das Element nicht gerendert, oder sein Fallback wird gerendert, falls angegeben.
isVisible Boolean Steuert die Sichtbarkeit des Elements.
separator Boolean Steuert, ob eine Trennlinie über dem Element angezeigt werden muss, um es visuell vom vorherigen Element zu trennen. Für das erste Element in einem Container wird kein Trennzeichen angezeigt, auch wenn diese Eigenschaft auf truefestgelegt ist.
height Zeichenfolge Höhe des Elements. Wenn festgelegt auf stretch, verwendet das Element den verbleibenden vertikalen Platz in seinem Container.
Zulässige Werte: auto, stretch
horizontalAlignment Zeichenfolge Steuert, wie das Element horizontal ausgerichtet werden muss.
Zulässige Werte: Left, Center, Right
Spacing Zeichenfolge Steuert den Abstand zwischen diesem Element und dem vorherigen. Für das erste Element in einem Container wird kein Leerzeichen hinzugefügt.
Zulässige Werte: None, Small, Default, Medium, Large, ExtraLarge
targetWidth Zeichenfolge Steuert die Breite der Karte, für die das Element angezeigt werden soll. Wenn targetWidth nicht angegeben, wird das Element in allen Kartenbreiten gerendert. Die Verwendung targetWidth ermöglicht es, responsive Karten zu erstellen, die ihr Layout an den verfügbaren horizontalen Platz anpassen. Weitere Informationen finden Sie unter Responsives Layout für adaptive Karten.
Zulässige Werte: VeryNarrow, Narrow, Standard, Wide
icon Zeichenfolge Auf der Schaltfläche angezeigtes Symbol.
badge Zeichenfolge Badge auf der Schaltfläche. Markdown wird nicht unterstützt.
description Zeichenfolge Beschreibungstext der Schaltfläche. Markdown wird nicht unterstützt.
selectAction Aktion, die aufgerufen wird, wenn die Schaltfläche ausgewählt wird. Alle Aktionen sind zulässig, mit Ausnahme von Action.ShowCard

Hier sind die Eigenschaften des icon Elements:

Eigenschaft Erforderlich Typ Beschreibung
name ✔️ Zeichenfolge Name des Symbols gemäß dem Fluent-Symbolverzeichnis. Er entspricht dem Namen des neuen icon-Elements.
size Zeichenfolge Größe des Symbols. Zulässige Werte: xxSmall, xSmall, Small, Standard, Medium, Large, xLarge, xxLarge
style Zeichenfolge Stil des Symbols. Zulässige Werte: Regular, Filled
color Zeichenfolge Farbe des Symbols. Zulässige Werte: Default, Dark, Light, Accent, Good, Warning, Attention

Hier ist ein Beispiel für adaptive Karten, das das CompoundButton Element verwendet:

{ 
    "type": "AdaptiveCard", 
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json", 
    "version": "1.5", 
    "body": [ 
        { 
            "type": "CompoundButton", 
            "title": "Photos", 
            "icon": { 
                "name": "Camera" 
            }, 
            "description": "Add photos", 
            "height": "stretch"
        } 
    ] 
}

Screenshot der Desktop- und mobilen Ansicht von zusammengesetzten Schaltflächen in einer adaptiven Karte.

Symbole in adaptiver Karte

Adaptive Karten unterstützen das Hinzufügen von Symbolen aus der Fluent-Symbolbibliothek mithilfe des Icon Elements. Sie können Fluent-Symbole auch für Aktionsschaltflächen verwenden, indem Sie die Eigenschaft der iconUrl Aktion auf einen Wert im Format .icon:<icon name>[,regular|filled]

Hier sind die Eigenschaften des Icon Elements:

Eigenschaft Beschreibung
type Muss Icon sein.
name Der Name des anzuzeigenden Symbols. Beispiel: calendar.
size Größe des Symbols.
Zulässige Werte: xxSmall, xSmall, Small, Medium, LargexLarge, und xxLarge
Standardwert:Standard
color Farbe des Symbols.
Zulässige Werte: Dark, Light, Accent, GoodWarning, und Attention
Standardwert:Default
style Stil des Symbols.
Zulässige Werte: Filled, Regular
selectAction Aktion, die aufgerufen wird, wenn auf das Symbol getippt oder es ausgewählt wird. Alle Aktionstypen werden unterstützt, mit Ausnahme von Action.ShowCard.
Zulässige Werte: Action.Execute, Action.OpenUrl, Action.Popover, Action.ResetInputs, Action.Submit, Action.ToggleVisibility

Hier ist ein Beispiel für adaptive Karten, das das Icon Element und die iconUrl Eigenschaft in einer Aktionsschaltfläche verwendet:

{
  "type": "AdaptiveCard",
  "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.5",
  "body": [
    {
      "type": "TextBlock",
      "text": "Here's an Icon element"
    },
    {
  "type": "Icon",
        "name": "Calendar",
        "size": "Medium",
        "style": "Filled",
        "color": "Accent"
    },
    {
      "type": "TextBlock",
      "text": "Here's an Icon element in a button"
    }
 ],
 "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "Filled icon",
            "url": "https://www.microsoft.com",
            "iconUrl": "icon:AccessTime,filled"
        }
    ]
}

Screenshot: Adaptive Karte mit einem Fluent-Symbol.

Bewertungen in adaptiven Karten

Mit dem Input.Rating Element können Sie Ihrer adaptiven Karte eine Sternebewertung hinzufügen. Sie können mithilfe des Rating Elements auch eine schreibgeschützte Sternebewertung hinzufügen.

Screenshot: Adaptive Karte mit der Eingabebewertung und schreibgeschützten Sternbewertungen.

Die folgende Nutzlast zeigt eine adaptive Karte mit eingabefähigen und schreibgeschützten Sternebewertungen:

{
    "type": "AdaptiveCard",
    "$schema": "https://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.5",
    "body": [
        {
            "type": "TextBlock",
            "size": "Large",
            "text": "Rating input"
        },
        {
            "type": "Input.Rating",
            "id": "rating1",
            "label": "Pick a rating",
            "size": "medium",
            "color": "marigold",
            "isRequired": true,
            "errorMessage": "Please pick a rating"
        },
        {
            "type": "TextBlock",
            "size": "large",
            "text": "Read-only rating",
            "separator": true,
            "spacing": "ExtraLarge"
        },
        {
            "type": "Rating",
            "max": 20,
            "value": 3.2,
            "color": "marigold"
        }
    ]
}

Input.Rating

Hier sind die Eigenschaften des Input.Rating Elements:

Eigenschaft Erforderlich Typ Beschreibung
type ✔️ Zeichenfolge Muss Input.Rating sein.
allowHalfSteps Boolean Steuert, ob der Benutzer halbe Sterne auswählen kann. Standardwert: false
color Zeichenfolge Die Farbe der Sterne.
Zulässige Werte: Neutral, Marigold
Standardwert: Neutral
errorMessage Zeichenfolge Die Fehlermeldung, die angezeigt werden soll, wenn die Überprüfung der Eingabe fehlschlägt.
fallback Einer der Objekte oder Zeichenfolgen Ein alternatives Element zum Rendern, wenn der Typ dieses Elements nicht unterstützt wird oder wenn die Hostanwendung nicht alle in der requires Eigenschaft angegebenen Funktionen unterstützt.
Zulässige Werte: Container, ActionSet, ColumnSetMedia, RichTextBlock, , Table, TextBlockFactSetImageSetImageInput.TextInput.DateInput.TimeInput.NumberInput.ToggleInput.ChoiceSetInput.RatingRatingCompoundButtonIconChart.DonutChart.PieChart.VerticalBar.GroupedChart.VerticalBarChart.HorizontalBarChart.HorizontalBar.StackedChart.LineChart.GaugeCodeBlockdrop
grid.area Zeichenfolge Der Bereich eines Layout.AreaGrid Layouts, in dem ein Element angezeigt werden muss.
height Zeichenfolge Steuert die Höhe des Elements. Wenn festgelegt auf stretch, verwendet das Element den verbleibenden vertikalen Platz in seinem Container.
Zulässige Werte: auto, stretch
Standardwert: auto
id ✔️ Zeichenfolge Ein eindeutiger Bezeichner für das Element oder die Aktion.
isRequired Boolean Bestimmt, ob die Eingabe erforderlich ist.
Standardwert: false
isVisible Boolean Bestimmt die Sichtbarkeit des Elements.
Standardwert: true
label Zeichenfolge Die Bezeichnung der Eingabe.
lang Zeichenfolge Das Gebietsschema, das dem Element zugeordnet ist.
max Zahl Die Anzahl der anzuzeigenden Sterne. Die standardmäßig und maximal unterstützte Anzahl von Sternen beträgt fünf.
requires Objekt Eine Liste der Funktionen, die das Element von der Hostanwendung unterstützen muss. Wenn die Hostanwendung mindestens eine der aufgeführten Funktionen nicht unterstützt, wird das Element nicht gerendert, oder sein Fallback wird gerendert, falls angegeben.
Zulässige Werte: HostCapabilities
separator Boolean Bestimmt, ob über dem Element eine Trennlinie angezeigt werden soll, um es optisch vom vorherigen Element zu trennen. Für das erste Element in einem Container wird kein Trennzeichen angezeigt, auch wenn diese Eigenschaft auf truefestgelegt ist.
Standardwert: false
size Zeichenfolge Die Größe der Sterne.
Zulässige Werte: Medium, Large
Standardwert: Large
spacing Zeichenfolge Steuert den Abstand zwischen diesem Element und dem vorherigen. Für das erste Element in einem Container wird kein Leerzeichen hinzugefügt.
Zulässige Werte: None, Small, Default, Medium, Large, ExtraLarge, Padding
Standardwert: Default
targetWidth Zeichenfolge Steuert die Breite der Karte, für die das Element angezeigt werden soll. Wenn targetWidth nicht angegeben, wird das Element in allen Kartenbreiten gerendert. Die Verwendung targetWidth ermöglicht es, responsive Karten zu erstellen, die ihr Layout an den verfügbaren horizontalen Platz anpassen. Weitere Informationen finden Sie unter Responsives Layout für adaptive Karten.
Zulässige Werte: VeryNarrow, Narrow, Standard, Wide, atLeast:VeryNarrow, atMost:VeryNarrowatLeast:NarrowatMost:NarrowatLeast:StandardatMost:StandardatLeast:WideatMost:Wide
value Zahl Der Standardwert der Eingabe. Dieser Wert darf nicht überschreiten max, wenn max er angegeben ist.
valueChangedAction Aktion Eine Action.ResetInputs Aktion, die ausgeführt wird, wenn sich der Wert der Eingabe ändert.
Zulässiger Wert: Action.ResetInputs

Bewertung

Hier sind die Eigenschaften des Rating Elements:

Eigenschaft Erforderlich Typ Beschreibung
type ✔️ Zeichenfolge Muss Rating sein.
color Zeichenfolge Die Farbe der Sterne.
Zulässige Werte: Neutral, Marigold
Standardwert: Neutral
count Zahl Die Anzahl der "Stimmen", die der Bewertung zugeordnet sind.
fallback Einer der Objekte oder Zeichenfolgen Ein alternatives Element zum Rendern, wenn dieser Elementtyp nicht unterstützt wird oder wenn die Hostanwendung nicht alle in der requires Eigenschaft angegebenen Funktionen unterstützt.
Zulässige Werte: Container, ActionSet, ColumnSetMedia, RichTextBlock, , Table, TextBlockFactSetImageSetImageInput.TextInput.DateInput.TimeInput.NumberInput.ToggleInput.ChoiceSetInput.RatingRatingCompoundButtonIconChart.DonutChart.PieChart.VerticalBar.GroupedChart.VerticalBarChart.HorizontalBarChart.HorizontalBar.StackedChart.LineChart.GaugeCodeBlockdrop
grid.area Zeichenfolge Der Bereich eines Layout.AreaGrid Layouts, in dem ein Element angezeigt werden muss.
height Zeichenfolge Die Höhe des Elements. Wenn festgelegt auf stretch, verwendet das Element den verbleibenden vertikalen Platz in seinem Container.
Zulässige Werte: Auto, Stretch
horizontalAlignment Zeichenfolge Steuert, wie das Element horizontal ausgerichtet werden soll.
Zulässige Werte: Left, Center, Right
id Zeichenfolge Ein eindeutiger Bezeichner für das Element oder die Aktion.
isVisible Boolean Steuert die Sichtbarkeit des Elements.
Standardwert: true
lang Zeichenfolge Das Gebietsschema, das dem Element zugeordnet ist.
max Zahl Die Anzahl der anzuzeigenden Sterne. Die standardmäßig und maximal unterstützte Anzahl von Sternen beträgt fünf.
requires Objekt Eine Liste der Funktionen, die das Element von der Hostanwendung unterstützen muss. Wenn die Hostanwendung mindestens eine der aufgeführten Funktionen nicht unterstützt, wird das Element nicht gerendert, oder sein Fallback wird gerendert, falls angegeben.
Zulässiger Wert: HostCapabilities
separator Boolean Steuert, ob über dem Element eine Trennlinie angezeigt werden soll, um es optisch vom vorherigen Element zu trennen. Für das erste Element in einem Container wird kein Trennzeichen angezeigt, auch wenn diese Eigenschaft auf truefestgelegt ist.
Standardwert: false
size Zeichenfolge Die Größe der Sterne.
Zulässige Werte: Medium, Large
Standardwert: Large
spacing Zeichenfolge Steuert den Abstand zwischen diesem Element und dem vorherigen. Für das erste Element in einem Container wird kein Leerzeichen hinzugefügt.
Zulässige Werte: None, Small, Default, Medium, Large, ExtraLarge, Padding
Standardwert: Default
style Zeichenfolge Der Stil der Sterne. Im Kompaktmodus wird nur ein Stern angezeigt.
Zulässige Werte: Default, Compact
Standardwert: Default
targetWidth Zeichenfolge Steuert die Breite der Karte, für die das Element angezeigt werden soll. Wenn targetWidth nicht angegeben, wird das Element in allen Kartenbreiten gerendert. Die Verwendung targetWidth ermöglicht es, responsive Karten zu erstellen, die ihr Layout an den verfügbaren horizontalen Platz anpassen. Weitere Informationen finden Sie unter Responsives Layout für adaptive Karten.
Zulässige Werte: VeryNarrow, Narrow, Standard, Wide, atLeast:VeryNarrow, atMost:VeryNarrowatLeast:NarrowatMost:NarrowatLeast:StandardatMost:StandardatLeast:WideatMost:Wide
value Zahl Der Wert der Bewertung. Dieser Wert muss zwischen Null und maxliegen, wenn max er angegeben ist.

Formatieren von Karten mit HTML

Die folgenden Kartentypen unterstützen die HTML-Formatierung in Teams:

  • Connectorkarten für Microsoft 365-Gruppen: Eingeschränktes Markdown und HTML-Formatierung werden in der Connector-Karte für Microsoft 365-Gruppen unterstützt.
  • Hero- und Miniaturansichtskarten: HTML-Tags werden für einfache Karten unterstützt, z. B. Hero- und Miniaturansichtskarten.

Die Formatierung unterscheidet sich zwischen der Desktop- und der mobilen Version von Teams bei Konnektorkarten für Microsoft 365-Gruppen und einfachen Karten. In diesem Abschnitt können Sie das HTML-Formatbeispiel für Connector-Karten und einfache Karten durchgehen.

Connector-Karten unterstützen eingeschränkte Markdown- und HTML-Formatierung.

Format Beispiel HTML
Fett text <strong>text</strong>
Kursiv text <em>text</em>
Kopfzeile (Ebenen 1 bis 3) Text <h3>Text</h3>
Durchgestrichen text <strike>text</strike>
Unsortierte Liste
  • text
  • text
<ul><li>text</li><li>text</li></ul>
Sortierte Liste
  1. text
  2. text
<ol><li>text</li><li>text</li></ol>
Vorformatierter Text text <pre>text</pre>
Blockzitat
text
<blockquote>text</blockquote>
Hyperlink Bing <a href="https://www.bing.com/">Bing</a>
Bildverknüpfung Ente auf einem Felsen <img src="https://aka.ms/Fo983c" alt="Duck on a rock"></img>

In Connector-Karten werden Zeilenumbrüche in HTML mit dem <p>-Tag gerendert.

Unterschiede zwischen Mobilgeräten und Desktops für Connector-Karten

Auf dem Desktop erscheint die HTML-Formatierung für Connector-Karten wie in der folgenden Abbildung dargestellt:

Screenshot: HTML-Formatierung für Connectorkarten im Desktopclient.

Unter iOS erscheint die HTML-Formatierung wie in der folgenden Abbildung dargestellt:

Screenshot: HTML-Formatierung für Connectorkarten im iOS-Client.

Connector-Karten, die HTML für iOS verwenden, weisen die folgenden Probleme auf:

  • Inlinebilder werden auf iOS weder mit Markdown noch mit HTML in Connectorkarten gerendert.
  • Vorformatierter Text wird gerendert, hat aber keinen grauen Hintergrund.

Unter Android erscheint die HTML-Formatierung wie in der folgenden Abbildung dargestellt:

Screenshot: HTML-Formatierung für Connectorkarten im Android-Client.

Formatbeispiel für HTML-Connector-Karten

Der folgende Code zeigt ein Beispiel für die Formatierung von HTML-Connector-Karten:

{
  "contentType": "application/vnd.microsoft.teams.card.o365connector",
  "content": {
    "@type": "MessageCard",
    "@context": "https://schema.org/extensions",
    "summary": "Summary",
    "title": "Connector Card HTML formatting",
    "sections": [
        {
            "text": "This is some <strong>bold</strong> text"
        },
        {
            "text": "This is some <em>italic</em> text"
        },
        {
            "text": "This is some <strike>strikethrough</strike> text"
        },
        {
            "text": "<h1>Header 1</h1>\r<h2>Header 2</h2>\r <h3>Header 3</h3>"
        },
        {
            "text": "bullet list <ul><li>text</li><li>text</li></ul>"
        },
        {
            "text": "ordered list <ol><li>text</li><li>text</li></ol>"
        },
        {
            "text": "hyperlink <a href=\"https://www.bing.com/\">Bing</a>"
        },
        {
            "text": "embedded image <img src=\"https://aka.ms/Fo983c\" alt=\"Duck on a rock\"></img>"
        },
        {
            "text": "preformatted text <pre>text</pre>"
        },
        {
            "text": "Paragraphs <p>Line a</p><p>Line b</p>"
        },
        {
            "text": "<blockquote>Blockquote text</blockquote>"
        }
     ]
  }
}

Codebeispiele

S.No. Beschreibung .NET Node.js Manifest
1 Dieses Beispiel zeigt, wie Sie verschiedene Formatierungsstile in adaptiven Karten verwenden, z. B. Erwähnungen, Personensymbole und responsives Layout. View View Anzeigen

Siehe auch