{"id":55000055,"date":"2016-10-01T00:00:00","date_gmt":"2020-03-27T19:22:18","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=55"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Ribbons_mit_WPF","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/","title":{"rendered":"Ribbons mit WPF"},"content":{"rendered":"<p><b>Der geneigte Access-Entwickler wei&szlig; mit dem Begriff Ribbon nat&uuml;rlich etwas anzufangen. Aber gibt es so etwas auch f&uuml;r .NET-Anwendungen Ist das nicht ein reines Office-Feature Immerhin gibt es ja auch in der Benutzeroberfl&auml;che von Visual Studio kein Ribbon, sondern eine Men&uuml;leiste und Symbolleisten, wie Sie sie von &auml;lteren Office-Versionen bis Office 2003 kennen (man munkelt, einige Entwickler w&uuml;nschten sich die Men&uuml;leisten zur&uuml;ck &#8230;). In diesem Artikel schauen wir uns an, wie weit es mit dem Ribbon unter .NET und speziell unter WPF bestellt ist und welche Unterst&uuml;tzung uns Visual Studio f&uuml;r die Programmierung von Ribbons bietet.<\/b><\/p>\n<p>Um herauszufinden, ob es unter WPF Ribbons gibt und wie diese programmiert werden, starten wir mit einem neuen Projekt unter dem Namen <b>RibbonsInWPF <\/b>mit der Vorlage <b>Visual C#|Windows|WPF-Anwendungen<\/b>. Dort beginnen wir mit dem Fenster <b>MainWindow<\/b>, das ja automatisch als Startfenster angelegt wird. <\/p>\n<p>Die schnelle Eingabe des Suchbegriffs Ribbon in das Suchfenster der Toolbox von Visual Studio liefert schon einmal keine Ergebnisse. Also werfen wir einen Blick in den Dialog <b>Neues Element hinzuf&uuml;gen<\/b>, den Sie mit dem gleichnamigen Befehl des Eintrags <b>Projekt <\/b>der Men&uuml;leiste &ouml;ffnen. Auch hier gibt es eine Suchm&ouml;glichkeit, die wir allerdings ebenfalls ohne Erfolg nutzen. Gibt es etwa gar keine Ribbons unter WPF<\/p>\n<p>Vielleicht m&uuml;ssen wir daf&uuml;r eine spezielle Bibliothek hinzuf&uuml;gen. Also &ouml;ffnen wir den <b>Verweis-Manager <\/b>(Men&uuml;eintrag <b>Projekt|Verweis hinzuf&uuml;gen&#8230;<\/b>) und suchen hier nach dem Ausdruck <b>Ribbon<\/b>. Bingo! Hier werden wir endlich f&uuml;ndig und f&uuml;gen den Eintrag aus Bild 1 per Mausklick zu den eingebundenen Referenzen hinzu. In den Steuerelementen und auch im Dialog <b>Neues Element hinzuf&uuml;gen <\/b>finden sich allerdings weiterhin keine neuen Elemente. Um es kurz zu machen: Auch in Visual Studio m&uuml;ssen Sie manuell XML-Code eingeben, um ein Ribbon zu definieren. Also legen wir los und f&uuml;gen im <b>Grid<\/b>-Element ein erstes <b>Ribbon<\/b>-Element hinzu:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_55_001.png\" alt=\"Hinzuf&uuml;gen einer Referenz auf die Bibliothek System.Windows.Controls.Ribbon\" width=\"649,559\" height=\"333,8699\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Hinzuf&uuml;gen einer Referenz auf die Bibliothek System.Windows.Controls.Ribbon<\/span><\/b><\/p>\n<pre>&lt;Window x:Class=\"RibbonMitWPF.MainWindow\"&gt;\r\n     &lt;Grid&gt;\r\n         &lt;Ribbon&gt;&lt;\/Ribbon&gt;\r\n     &lt;\/Grid&gt;\r\n&lt;\/Window&gt;<\/pre>\n<p>Das Ergebnis bekommen wir allerdings immerhin direkt in Form eines entsprechenden Elements im Entwurf des WPF-Fensters zu sehen (siehe Bild 2). Ein Klick mit der rechten Maustaste auf das Ribbon liefert ebenfalls keine M&ouml;glichkeit, auf die Schnelle ein paar Steuerelemente zum Ribbon hinzuzuf&uuml;gen. Also genie&szlig;en wir zumindest die Bereitstellung von IntelliSense bei der manuellen Eingabe der notwendigen Elemente.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_55_002.png\" alt=\"Hinzuf&uuml;gen eines leeren Ribbons\" width=\"599,593\" height=\"510,049\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Hinzuf&uuml;gen eines leeren Ribbons<\/span><\/b><\/p>\n<h2>Tab-Element hinzuf&uuml;gen<\/h2>\n<p>Ein Ribbon-Tab legen Sie &uuml;ber das <b>RibbonTab<\/b>-Element an, nicht wie unter Office mit dem <b>tab<\/b>-Element:<\/p>\n<pre>&lt;Ribbon&gt;\r\n     &lt;RibbonTab Header=\"Ribbontab\"&gt;&lt;\/RibbonTab&gt;\r\n&lt;\/Ribbon&gt;<\/pre>\n<p>Grunds&auml;tzlich finden Sie die Ribbon-spezifischen Elemente alle schnell, wenn Sie mit IntelliSense-Unterst&uuml;tzung direkt die Zeichenfolge <b>Ribbon&#8230; <\/b>eingeben (siehe Bild 3). Hier tauchen dann auch schnell die bekannten Elemente wie <b>RibbonButton<\/b>, <b>RibbonGroup<\/b> und so weiter auf.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_55_003.png\" alt=\"Zugriff auf die Ribbon-Elemente per IntelliSense\" width=\"599,593\" height=\"381,944\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Zugriff auf die Ribbon-Elemente per IntelliSense<\/span><\/b><\/p>\n<h2>Schaltfl&auml;che hinzuf&uuml;gen<\/h2>\n<p>F&uuml;gen wir als N&auml;chstes eine Schaltfl&auml;che hinzu. Wenn wir nicht achtgeben und das <b>RibbonButton<\/b>-Element au&szlig;erhalb des <b>RibbonTab<\/b>-Elements im XAML-Code hinzuf&uuml;gen, geschieht tats&auml;chlich das, was Sie in Bild 4 sehen: Das <b>RibbonButton<\/b>-Element wird oben neben dem Ribbon-Registerreiter angelegt. Ob und wozu man das braucht, erkl&auml;rt sich nicht &#8211; wir wollen uns aber an den gewohnten Strukturen aus dem Office-Bereich orientieren. Also f&uuml;gen wir das <b>RibbonButton<\/b>-Element auch nicht einfach in das <b>RibbonTab<\/b>-Element ein, sondern f&uuml;gen zun&auml;chst ein <b>RibbonGroup<\/b>-Element hinzu. Grunds&auml;tzlich kann man sich als Access-Entwickler, der sich schon einmal mit der Programmierung des Ribbons besch&auml;ftigt hat, merken, dass die bekannten Elemente alle mit dem Pr&auml;fix <b>Ribbon&#8230; <\/b>ausgestattet wurden (also <b>RibbonTab<\/b> statt <b>tab<\/b>, <b>RibbonGroup <\/b>statt <b>group <\/b>et cetera).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_55_004.png\" alt=\"Ein Ribbon-Button au&szlig;erhalb eines Tab-Elements\" width=\"599,593\" height=\"306,5714\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Ein Ribbon-Button au&szlig;erhalb eines Tab-Elements<\/span><\/b><\/p>\n<p>Ein <b>RibbonTab<\/b>-Element mit zwei <b>RibbonGroup<\/b>&#8211; und je drei <b>RibbonButton<\/b>-Elementen definieren wir schlie&szlig;lich wie in Listing 1.<\/p>\n<pre>&lt;Ribbon Title=\"Beispielribbon\"&gt;\r\n   &lt;RibbonTab Header=\"Ribbontab\"&gt;\r\n     &lt;RibbonGroup Header=\"Ribbongruppe 1\"&gt;\r\n       &lt;RibbonButton Label=\"Beispielbutton 1\"&gt;&lt;\/RibbonButton&gt;\r\n       &lt;RibbonButton Label=\"Beispielbutton 2\"&gt;&lt;\/RibbonButton&gt;\r\n       &lt;RibbonButton Label=\"Beispielbutton 3\"&gt;&lt;\/RibbonButton&gt;\r\n     &lt;\/RibbonGroup&gt;\r\n     &lt;RibbonGroup Header=\"Ribbongruppe 2\"&gt;\r\n       &lt;RibbonButton Label=\"Beispielbutton 4\"&gt;&lt;\/RibbonButton&gt;\r\n       &lt;RibbonButton Label=\"Beispielbutton 5\"&gt;&lt;\/RibbonButton&gt;\r\n       &lt;RibbonButton Label=\"Beispielbutton 6\"&gt;&lt;\/RibbonButton&gt;\r\n     &lt;\/RibbonGroup&gt;\r\n   &lt;\/RibbonTab&gt;\r\n&lt;\/Ribbon&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Code f&uuml;r ein Ribbon mit zwei Gruppen und einigen Schaltlf&auml;chen<\/span><\/b><\/p>\n<p>Das Ergebnis nach einem Klick auf die Taste <b>F5<\/b> zum Start des Debuggers zeigt Bild 5. Es gibt ein paar Besonderheiten, die wir an dieser Stelle kl&auml;ren wollen: Zun&auml;chst k&ouml;nnen Sie bereits f&uuml;r das <b>Ribbon<\/b>-Element mit dem Attribut <b>Title <\/b>eine &Uuml;berschrift festlegen, die dann in der Abbildung beispielsweise <b>Beispielribbon <\/b>lautet. Dies ist unter Office so nicht m&ouml;glich. Die zweite Besonderheit ist, dass es f&uuml;r die Beschriftungen so viele verschiedene Attribute gibt. Beim <b>Ribbon<\/b>-Element selbst hei&szlig;t sie <b>Title<\/b>, beim <b>RibbonTab <\/b>und bei der <b>RibbonGroup <\/b>lautet das Attribut <b>Header <\/b>und bei der Schaltfl&auml;che (<b>RibbonButton<\/b>) hei&szlig;t sie schlie&szlig;lich <b>Label<\/b>. Der Hintergrund sind die verschiedenen Basis-Elemente, von denen die Ribbon-Elemente erben. Wenn man das erstmal herausgefunden hat, gew&ouml;hnt man sich allerdings recht schnell daran.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_55_005.png\" alt=\"Ein Ribbon in einer laufenden Anwendung\" width=\"424,7115\" height=\"172,7914\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Ein Ribbon in einer laufenden Anwendung<\/span><\/b><\/p>\n<h2>Bilder im WPF-Ribbon<\/h2>\n<p>Bevor wir uns um die Funktionalit&auml;t k&uuml;mmern, also um die Ereignisse der einzelnen Ribbon-Elemente, wollen wir noch f&uuml;r eine etwas schickere Optik sorgen. Dazu geh&ouml;ren im Ribbon nat&uuml;rlich ein paar Icons. Im Gegensatz zu Access (und den &uuml;brigen Office-Anwendungen), wo einiges an Code ben&ouml;tigt wird, um Bilder im Ribbon anzuzeigen, gelingt dies unter WPF relativ einfach. Dazu f&uuml;gen Sie zun&auml;chst die gew&uuml;nschten Icons zum Projekt hinzu, indem Sie diese einfach in das Projekt im Projektmappen-Explorer ziehen. Bevor Sie damit beginnen, sollten Sie sich &uuml;berlegen, ob Sie f&uuml;r Bilddateien nicht einen eigenen Ordner innerhalb des Projekts anlegen sollen. Dies erledigen Sie &uuml;ber den Kontextmen&uuml;-Eintrag <b>Hinzuf&uuml;gen|Neuer Ordner <\/b>des Projekt-Elements. Den neuen Ordner k&ouml;nnen Sie beispielsweise <b>Images <\/b>nennen. Danach ziehen wir einige Bilddateien aus dem Windows Explorer in dieses Verzeichnis. Sammlungen solcher Icons k&ouml;nnen Sie im Internet kostenlos finden, f&uuml;r hochwertige Kollektionen wie etwa von <b>iconexperience.com <\/b>m&uuml;ssen Sie jedoch ein paar Euro hinlegen.<\/p>\n<p>Der neue Ordner <b>Images <\/b>mit einigen Bildern sieht dann so wie in Bild 6 aus. Wenn Sie die Eintr&auml;ge mit der Maus &uuml;berfahren, blendet Visual Studio eine Vorschau der jeweiligen Bilder ein. Nun wollen wir die Bilder auch im Ribbon anzeigen, zun&auml;chst als Symbol f&uuml;r die Schaltfl&auml;chen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_55_006.png\" alt=\"Bilder f&uuml;r die Anzeige im Ribbon im Projekt-Explorer\" width=\"424,7115\" height=\"430,0204\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Bilder f&uuml;r die Anzeige im Ribbon im Projekt-Explorer<\/span><\/b><\/p>\n<p>Dazu f&uuml;gen wir den Schaltfl&auml;chen eines der beiden Attribute <b>SmallImageSource <\/b>oder <b>LargeImageSource <\/b>hinzu und legen den Namen der Bilddatei inklusive Verzeichnis als Wert fest. Dies sieht beispielsweise wie folgt aus:<\/p>\n<pre>&lt;RibbonButton Label=\"Beispielbutton 1\" \r\n     LargeImageSource=\"Images\\apple.png\" \/&gt;\r\n...\r\n&lt;RibbonButton Label=\"Beispielbutton 4\" \r\n    SmallImageSource=\"Images\\ice_cream2.png\" \/&gt;<\/pre>\n<p>In der Anwendung erscheinen die Bilder in den veschiedenen Gr&ouml;&szlig;en dann wie in Bild 7. Wir haben hier ausschlie&szlig;lich Bilder der Gr&ouml;&szlig;e 32&#215;32 verwendet. &Uuml;blicherweise verwendet man f&uuml;r das Attribut <b>LargeImageSource <\/b>Bilddateien dieser Gr&ouml;&szlig;e, f&uuml;r das Attribut <b>SmallImageSource <\/b>nutzt man Bilder der Gr&ouml;&szlig;e 16&#215;16. Die Bilder werden aber bei Bedarf herunterskaliert. Wenn Sie &uuml;ber eine Icon-Sammlung mit Icons in diesen beiden Gr&ouml;&szlig;en verf&uuml;gen, sollten Sie jeweils die korrekte Gr&ouml;&szlig;e f&uuml;r die entsprechenden Attribute verwenden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_55_007.png\" alt=\"Ribbon-Schaltfl&auml;chen mit einigen Bildern\" width=\"499,6607\" height=\"168,416\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Ribbon-Schaltfl&auml;chen mit einigen Bildern<\/span><\/b><\/p>\n<p>Dazu m&uuml;ssen Sie dann zum Dateinamen der Elemente im Ordner <b>Images <\/b>noch ein Suffix wie etwa <b>_small <\/b>hinzuf&uuml;gen.<\/p>\n<h2>Ribbon-Titelzeile entfernen<\/h2>\n<p>Die Zeile, die durch das Ribbon-Element selbst repr&auml;sentiert wird, k&ouml;nnen Sie mit einem Trick entfernen. Dazu &auml;ndern Sie den Typ des Fenster-Objekts von <b>Window <\/b>auf <b>RibbonWindow<\/b>. Dazu sind drei Schritte n&ouml;tig.<\/p>\n<p>Der erste Schritt ist das Hinzuf&uuml;gen der Klasse mit einer entsprechenden <b>using<\/b>-Anweisung in der Code behind-Klasse des Fensters:<\/p>\n<pre>using System.Windows.Controls.Ribbon;<\/pre>\n<p>Danach &auml;ndern Sie den Typ der Basisklasse von <b>MainWindow <\/b>von <b>Window <\/b>auf <b>RibbonWindow<\/b>, sodass der Inhalt der Code behind-Klasse nun wie folgt aussieht:<\/p>\n<pre>namespace RibbonMitWPF {\r\n     public partial class MainWindow : RibbonWindow {\r\n         public MainWindow() {\r\n             InitializeComponent();\r\n         }\r\n     }\r\n}<\/pre>\n<p>Schlie&szlig;lich ziehen Sie diese &Auml;nderung auch im XAML-Code dieser Klasse nach. Dazu &auml;ndern Sie das oberste Element ebenfalls von Window in <b>RibbonWindow<\/b>:<\/p>\n<pre>&lt;RibbonWindow ... Title=\"MainWindow\" Height=\"350\" Width=\"625\"&gt;\r\n     &lt;Grid&gt;\r\n     ...<\/pre>\n<p>Wenn Sie die vorherige Ansicht und die aktuelle Version vergleichen, stellen Sie fest, dass die Zeile mit dem Text <b>Beispielribbon <\/b>weggefallen ist (siehe Bild 8). &Uuml;brigens: Wenn Sie das <b>Title<\/b>-Attribut des <b>RibbonWindow<\/b>-Elements in diesem Fall leer lassen, zeigt der Titel den Inhalt der Eigenschaft <b>Header <\/b>des <b>Ribbon<\/b>-Elements an.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_55_008.png\" alt=\"Ribbon mit und ohne Titelleiste\" width=\"649,559\" height=\"238,5237\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Ribbon mit und ohne Titelleiste<\/span><\/b><\/p>\n<p>Das Icon der Titelleiste des Fensters k&ouml;nnen Sie in diesem Fall durch Setzen des Attributs <b>WindowIconVisibility <\/b>auf den Wert <b>Collapsed <\/b>verschwinden lassen:<\/p>\n<pre>&lt;Ribbon Title=\"Beispielribbon\" \r\n     WindowIconVisibility=\"Collapsed\"&gt;<\/pre>\n<h2>Schnellzugriffsleiste nutzen<\/h2>\n<p>Warum aber sollte man diesen Bereich &uuml;berhaupt erhalten Nun: Wenn Sie Access-Ribbons gewohnt sind, wissen Sie, dass dort oben in der Regel die Schnellzugriffsleiste untergebracht ist, die einige Standardbefehle wie <b>Wiederholen <\/b>oder <b>R&uuml;ckg&auml;ngig <\/b>enth&auml;lt. Sie k&ouml;nnten also durchaus auch selbst einige solcher Befehle dort unterbringen, die immer sichtbar sind &#8211; unabh&auml;ngig davon, welches <b>RibbonTab<\/b>-Element gerade aktiviert ist. Um Elemente zur Schnellstartleiste hinzuzuf&uuml;gen, legen Sie unterhalb des <b>Ribbon<\/b>-Elements ein Element namens <b>Ribbon.QuickAccessToolbar <\/b>an, dem Sie wiederum das Element <b>RibbonQuickAccessToolbar <\/b>unterordnen. Darin finden schlie&szlig;lich die gew&uuml;nschten Steuerelemente Platz (siehe Bild 9):<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2016_05\/pic_55_009.png\" alt=\"Ribbon mit Elementen in der Schnellzugriffsleiste\" width=\"549,6265\" height=\"149,4297\" \/><\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000\"><a style=\"color: #ff0000\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000055\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000055?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000055\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"414ef111ab\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der geneigte Access-Entwickler wei&szlig; mit dem Begriff Ribbon nat&uuml;rlich etwas anzufangen. Aber gibt es so etwas auch f&uuml;r .NET-Anwendungen Ist das nicht ein reines Office-Feature Immerhin gibt es ja auch in der Benutzeroberfl&auml;che von Visual Studio kein Ribbon, sondern eine Men&uuml;leiste und Symbolleisten, wie Sie sie von &auml;lteren Office-Versionen bis Office 2003 kennen (man munkelt, einige Entwickler w&uuml;nschten sich die Men&uuml;leisten zur&uuml;ck &#8230;). In diesem Artikel schauen wir uns an, wie weit es mit dem Ribbon unter .NET und speziell unter WPF bestellt ist und welche Unterst&uuml;tzung uns Visual Studio f&uuml;r die Programmierung von Ribbons bietet.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662016,66052016,44000002,44000023,44000036,44000007],"tags":[],"yst_prominent_words":[],"class_list":["post-55000055","post","type-post","status-publish","format-standard","hentry","category-662016","category-66052016","category-Benutzeroberflaeche_mit_WPF","category-PowerApps","category-Ribbon_programmieren","category-Von_Access_zu_WPF"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Der geneigte Access-Entwickler wei\u00df mit dem Begriff Ribbon nat\u00fcrlich etwas anzufangen. Aber gibt es so etwas auch f\u00fcr .NET-Anwendungen Ist das nicht ein reines Office-Feature Immerhin gibt es ja auch in der Benutzeroberfl\u00e4che von Visual Studio kein Ribbon, sondern eine Men\u00fcleiste und Symbolleisten, wie Sie sie von \u00e4lteren Office-Versionen bis Office 2003 kennen (man munkelt, einige Entwickler w\u00fcnschten sich die Men\u00fcleisten zur\u00fcck ...). In diesem Artikel schauen wir uns an, wie weit es mit dem Ribbon unter .NET und speziell unter WPF bestellt ist und welche Unterst\u00fctzung uns Visual Studio f\u00fcr die Programmierung von Ribbons bietet.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Andr\u00e9 Minhorst\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Ribbons mit WPF - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"Der geneigte Access-Entwickler wei\u00df mit dem Begriff Ribbon nat\u00fcrlich etwas anzufangen. Aber gibt es so etwas auch f\u00fcr .NET-Anwendungen Ist das nicht ein reines Office-Feature Immerhin gibt es ja auch in der Benutzeroberfl\u00e4che von Visual Studio kein Ribbon, sondern eine Men\u00fcleiste und Symbolleisten, wie Sie sie von \u00e4lteren Office-Versionen bis Office 2003 kennen (man munkelt, einige Entwickler w\u00fcnschten sich die Men\u00fcleisten zur\u00fcck ...). In diesem Artikel schauen wir uns an, wie weit es mit dem Ribbon unter .NET und speziell unter WPF bestellt ist und welche Unterst\u00fctzung uns Visual Studio f\u00fcr die Programmierung von Ribbons bietet.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-27T19:22:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"-001-11-30T00:00:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Ribbons mit WPF - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Der geneigte Access-Entwickler wei\u00df mit dem Begriff Ribbon nat\u00fcrlich etwas anzufangen. Aber gibt es so etwas auch f\u00fcr .NET-Anwendungen Ist das nicht ein reines Office-Feature Immerhin gibt es ja auch in der Benutzeroberfl\u00e4che von Visual Studio kein Ribbon, sondern eine Men\u00fcleiste und Symbolleisten, wie Sie sie von \u00e4lteren Office-Versionen bis Office 2003 kennen (man munkelt, einige Entwickler w\u00fcnschten sich die Men\u00fcleisten zur\u00fcck ...). In diesem Artikel schauen wir uns an, wie weit es mit dem Ribbon unter .NET und speziell unter WPF bestellt ist und welche Unterst\u00fctzung uns Visual Studio f\u00fcr die Programmierung von Ribbons bietet.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#blogposting\",\"name\":\"Ribbons mit WPF - Visual Basic Entwickler\",\"headline\":\"Ribbons mit WPF\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"..\\\/fileadmin\\\/_temp_\\\/2016_05\\\/pic_55_001.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#articleImage\"},\"datePublished\":\"2016-10-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#webpage\"},\"articleSection\":\"2016, 5\\\/2016, Benutzeroberfl\\u00e4che mit WPF, PowerApps, Ribbon programmieren, Von Access zu WPF\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vbentwickler.de\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/#listItem\",\"name\":\"2016\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/#listItem\",\"position\":2,\"name\":\"2016\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/5\\\/2016\\\/#listItem\",\"name\":\"5\\\/2016\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/5\\\/2016\\\/#listItem\",\"position\":3,\"name\":\"5\\\/2016\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/5\\\/2016\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#listItem\",\"name\":\"Ribbons mit WPF\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/#listItem\",\"name\":\"2016\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#listItem\",\"position\":4,\"name\":\"Ribbons mit WPF\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2016\\\/5\\\/2016\\\/#listItem\",\"name\":\"5\\\/2016\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Andr\\u00e9 Minhorst\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/\",\"name\":\"Ribbons mit WPF - Visual Basic Entwickler\",\"description\":\"Der geneigte Access-Entwickler wei\\u00df mit dem Begriff Ribbon nat\\u00fcrlich etwas anzufangen. Aber gibt es so etwas auch f\\u00fcr .NET-Anwendungen Ist das nicht ein reines Office-Feature Immerhin gibt es ja auch in der Benutzeroberfl\\u00e4che von Visual Studio kein Ribbon, sondern eine Men\\u00fcleiste und Symbolleisten, wie Sie sie von \\u00e4lteren Office-Versionen bis Office 2003 kennen (man munkelt, einige Entwickler w\\u00fcnschten sich die Men\\u00fcleisten zur\\u00fcck ...). In diesem Artikel schauen wir uns an, wie weit es mit dem Ribbon unter .NET und speziell unter WPF bestellt ist und welche Unterst\\u00fctzung uns Visual Studio f\\u00fcr die Programmierung von Ribbons bietet.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Ribbons_mit_WPF\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2016-10-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Ribbons mit WPF - Visual Basic Entwickler","description":"Der geneigte Access-Entwickler wei\u00df mit dem Begriff Ribbon nat\u00fcrlich etwas anzufangen. Aber gibt es so etwas auch f\u00fcr .NET-Anwendungen Ist das nicht ein reines Office-Feature Immerhin gibt es ja auch in der Benutzeroberfl\u00e4che von Visual Studio kein Ribbon, sondern eine Men\u00fcleiste und Symbolleisten, wie Sie sie von \u00e4lteren Office-Versionen bis Office 2003 kennen (man munkelt, einige Entwickler w\u00fcnschten sich die Men\u00fcleisten zur\u00fcck ...). In diesem Artikel schauen wir uns an, wie weit es mit dem Ribbon unter .NET und speziell unter WPF bestellt ist und welche Unterst\u00fctzung uns Visual Studio f\u00fcr die Programmierung von Ribbons bietet.","canonical_url":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#blogposting","name":"Ribbons mit WPF - Visual Basic Entwickler","headline":"Ribbons mit WPF","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"..\/fileadmin\/_temp_\/2016_05\/pic_55_001.png","@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#articleImage"},"datePublished":"2016-10-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#webpage"},"articleSection":"2016, 5\/2016, Benutzeroberfl\u00e4che mit WPF, PowerApps, Ribbon programmieren, Von Access zu WPF"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","position":1,"name":"Home","item":"https:\/\/vbentwickler.de","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2016\/#listItem","name":"2016"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2016\/#listItem","position":2,"name":"2016","item":"https:\/\/vbentwickler.de\/category\/2016\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2016\/5\/2016\/#listItem","name":"5\/2016"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2016\/5\/2016\/#listItem","position":3,"name":"5\/2016","item":"https:\/\/vbentwickler.de\/category\/2016\/5\/2016\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#listItem","name":"Ribbons mit WPF"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2016\/#listItem","name":"2016"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#listItem","position":4,"name":"Ribbons mit WPF","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2016\/5\/2016\/#listItem","name":"5\/2016"}}]},{"@type":"Organization","@id":"https:\/\/vbentwickler.de\/#organization","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","url":"https:\/\/vbentwickler.de\/","logo":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author","url":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","width":96,"height":96,"caption":"Andr\u00e9 Minhorst"}},{"@type":"WebPage","@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#webpage","url":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/","name":"Ribbons mit WPF - Visual Basic Entwickler","description":"Der geneigte Access-Entwickler wei\u00df mit dem Begriff Ribbon nat\u00fcrlich etwas anzufangen. Aber gibt es so etwas auch f\u00fcr .NET-Anwendungen Ist das nicht ein reines Office-Feature Immerhin gibt es ja auch in der Benutzeroberfl\u00e4che von Visual Studio kein Ribbon, sondern eine Men\u00fcleiste und Symbolleisten, wie Sie sie von \u00e4lteren Office-Versionen bis Office 2003 kennen (man munkelt, einige Entwickler w\u00fcnschten sich die Men\u00fcleisten zur\u00fcck ...). In diesem Artikel schauen wir uns an, wie weit es mit dem Ribbon unter .NET und speziell unter WPF bestellt ist und welche Unterst\u00fctzung uns Visual Studio f\u00fcr die Programmierung von Ribbons bietet.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2016-10-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/vbentwickler.de\/#website","url":"https:\/\/vbentwickler.de\/","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","inLanguage":"de-DE","publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","og:type":"article","og:title":"Ribbons mit WPF - Visual Basic Entwickler","og:description":"Der geneigte Access-Entwickler wei\u00df mit dem Begriff Ribbon nat\u00fcrlich etwas anzufangen. Aber gibt es so etwas auch f\u00fcr .NET-Anwendungen Ist das nicht ein reines Office-Feature Immerhin gibt es ja auch in der Benutzeroberfl\u00e4che von Visual Studio kein Ribbon, sondern eine Men\u00fcleiste und Symbolleisten, wie Sie sie von \u00e4lteren Office-Versionen bis Office 2003 kennen (man munkelt, einige Entwickler w\u00fcnschten sich die Men\u00fcleisten zur\u00fcck ...). In diesem Artikel schauen wir uns an, wie weit es mit dem Ribbon unter .NET und speziell unter WPF bestellt ist und welche Unterst\u00fctzung uns Visual Studio f\u00fcr die Programmierung von Ribbons bietet.","og:url":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/","og:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","og:image:secure_url":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","article:published_time":"2020-03-27T19:22:18+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"Ribbons mit WPF - Visual Basic Entwickler","twitter:description":"Der geneigte Access-Entwickler wei\u00df mit dem Begriff Ribbon nat\u00fcrlich etwas anzufangen. Aber gibt es so etwas auch f\u00fcr .NET-Anwendungen Ist das nicht ein reines Office-Feature Immerhin gibt es ja auch in der Benutzeroberfl\u00e4che von Visual Studio kein Ribbon, sondern eine Men\u00fcleiste und Symbolleisten, wie Sie sie von \u00e4lteren Office-Versionen bis Office 2003 kennen (man munkelt, einige Entwickler w\u00fcnschten sich die Men\u00fcleisten zur\u00fcck ...). In diesem Artikel schauen wir uns an, wie weit es mit dem Ribbon unter .NET und speziell unter WPF bestellt ist und welche Unterst\u00fctzung uns Visual Studio f\u00fcr die Programmierung von Ribbons bietet.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000055","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2024-01-30 15:38:00","updated":"2026-05-16 08:17:54","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2016\/\" title=\"2016\">2016<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2016\/5\/2016\/\" title=\"5\/2016\">5\/2016<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tRibbons mit WPF\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de"},{"label":"2016","link":"https:\/\/vbentwickler.de\/category\/2016\/"},{"label":"5\/2016","link":"https:\/\/vbentwickler.de\/category\/2016\/5\/2016\/"},{"label":"Ribbons mit WPF","link":"https:\/\/vbentwickler.de\/Ribbons_mit_WPF\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000055","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000055"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000055\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000055"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000055"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000055"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000055"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}