{"id":969,"date":"2016-11-14T08:02:27","date_gmt":"2016-11-14T08:02:27","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?p=969"},"modified":"2020-09-24T13:05:48","modified_gmt":"2020-09-24T13:05:48","slug":"wpf-tricks-kontext-menu-per-behavior","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/","title":{"rendered":"WPF-Tricks: Kontext-Men\u00fc per Behavior"},"content":{"rendered":"\n<p><em>Behaviors<\/em>\u00a0bieten in WPF die M\u00f6glichkeit ein St\u00fcck Funktionalit\u00e4t in einer wiederverwendbare Komponente zu verpacken.\u00a0<em>Behaviors<\/em>\u00a0erlauben Anwendungsdesignern \u2013 mit wenig Aufwand \u2013 \u00c4nderungen am Programmverhalten zu bewirken ohne in den Programmcode einzugreifen.\u00a0Die Entwickler stellen\u00a0daf\u00fcr beispielsweise <em>Behaviors<\/em> f\u00fcr Drag &amp; Drop oder Touch-Interaktion bereit, die dann im \u201cBlend\u201d einfach auf das entsprechende Element angewandt werden. Dieses Tutorial zeigt, wie sich mit Hilfe eines <em>Behaviors<\/em> ein Kontext-Men\u00fc erzeugen l\u00e4sst.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Das Ziel<\/h2>\n\n\n\n<p>Die Inhalte eine Liste sollen vom Nutzer kopiert werden k\u00f6nnen. Da wir die einzelnen Listenelemente nicht in editierbare Text-Boxen umwandeln m\u00f6chten, soll ein Kontextmen\u00fc das Kopieren m\u00f6glich machen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"241\" height=\"66\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/06\/201611_WPF-Tricks-2.png\" alt=\"Men\u00fcpunkt mit Text &quot;Inhalt kopieren&quot; und Mauszeiger darauf\" class=\"wp-image-977\"\/><figcaption><em>Abbildung 1: Kontext-Men\u00fc zum Kopieren des Inhalts<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">So geht\u2019s<\/h2>\n\n\n\n<p>Wir erstellen ein neues <em>Behavior<\/em> indem wir von <em>Behavior&lt;T><\/em> ableiten. Das Blend-Behavior findet sich in\u00a0System.Windows.Interactivity. Als Typ geben wir <em>FrameworkElement<\/em> an \u2013 damit funktioniert unser <em>Behavior<\/em> auf praktisch allen Controls:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>    public class InhaltKopierenBahavior : Behavior&lt;FrameworkElement><\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Als erstes \u00fcberschreiben wir <em>OnAttached()<\/em> und <em>OnDetaching()<\/em>. Hier k\u00f6nnen wir reagieren, wenn ein Behavior hinzugef\u00fcgt oder entfernt wird.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>    protected override void OnAttached()\n    {\n     base.OnAttached();\n    }\n    protected override void OnDetaching()\n    {\n     base.OnDetaching();\n    }<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Das <em>Behavior<\/em> bietet uns Zugriff auf das Element, an das es \u2018attached\u2019 wurde. Daf\u00fcr gibt es das Property\u00a0<em>AssociatedObject<\/em>. Das <em>AssociatedObject<\/em> ist immer vom Typ, der bei der Klassendefintion angegeben wurde. (hier <em>FrameworkElement<\/em>). An das <em>AssociatedObject<\/em> \u2018h\u00e4ngen\u2019 wir jetzt unser Kontext-Men\u00fc mit den gew\u00fcnschten Optionen.\u00a0In unserem Beispiel reicht uns der Befehl \u201cInhalt kopieren\u201d. Dieser soll den angeklickten Text in die Zwischenablage kopieren. Im Beispiel wird der Men\u00fceintrag auch gleich noch mit einem Icon versehen:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>    protected override void OnAttached()\n    {\n     base.OnAttached();\n                \n     var uri = new Uri(\"copy-icon-256.png\");\n     var logo = new BitmapImage();\n     logo.BeginInit();\n     logo.DecodePixelWidth = 16;\n     logo.UriSource = uri;\n     logo.EndInit();\n     var menuEintrag = new MenuItem\n     {\n      Header = \"Inhalt kopieren\",\n      Icon = new Image { Source = logo }\n     };\n     menuEintrag.Click += MenuEintragOnClick;\n     AssociatedObject.ContextMenu = new ContextMenu();\n     AssociatedObject.ContextMenu.Items.Add(menuEintrag);\n     AssociatedObject.PreviewMouseRightButtonDown += MouseDown;\n    }<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Das Element, zu\u00a0dem wir unser Kontext-Men\u00fc hinzuf\u00fcgen ist nicht zwingend das Element, dessen Inhalt wir kopieren wollen. Wir wollen ja den Inhalt eines\u00a0<em>ListViewItems<\/em> und nicht den gesamten\u00a0<em>ListView<\/em> kopieren. Das <em>Behavior<\/em> auf jedes Listenelement anzuwenden, w\u00e4re aber unverh\u00e4ltnism\u00e4\u00dfig m\u00fchevoll. Dem <em>AssociatedObject<\/em> f\u00fcgen wir deshalb noch einen Event-Handler hinzu. Beim Rechtsklick soll nicht nur das Men\u00fc ge\u00f6ffnet, sondern zugleich auch das \u201cangeklickte\u201d Element ermittelt werden. Das \u201cgetroffene\u201d Element speichern wir uns in dem Field \u2018_element\u2019.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>    private void MouseDown(object sender, MouseButtonEventArgs args)\n    {\n     _element = args.MouseDevice.DirectlyOver;\n     args.Handled = true;\n    }<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Nun setzen wir die eigentliche Kopier-Funktionalit\u00e4t um, daf\u00fcr bekommt der Men\u00fc-Eintrag einen entsprechenden Event-Handler. Wir gehen davon aus, dass das getroffene Element ein Text-Block ist. Wenn nicht, k\u00f6nnen wir ohnehin nichts sinnvoll in die Zwischenablage kopieren.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>    private void MenuEintragOnClick(object sender, RoutedEventArgs args)\n    {\n     var textBlock = _getroffenesElement as TextBlock;\n     if (textBlock != null)\n     {\n      Clipboard.SetDataObject(textBlock.Text);\n     }\n    }<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Zu guter Letzt wenden\u00a0wir das <em>Behavior<\/em> in unserer Anwendung an. Wichtig ist, dass auch der \u201cBlend\u201d Namespace eingebunden ist: xmlns:i=\u201dhttp:\/\/schemas.microsoft.com\/expression\/2010\/interactivity\u201d<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>    &lt;ListView>\n     &lt;i:Interaction.Behaviors>\n      &lt;behaviors:InhaltKopierenBahavior\/>\n     &lt;\/i:Interaction.Behaviors>\n    &lt;\/ListView><\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Dieses Tutorial zeigt, wie sich mit Hilfe eines Behaviors ein Kontext-Men\u00fc erzeugen l\u00e4sst.<\/p>\n","protected":false},"author":42,"featured_media":1226,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[12,16],"tags":[372,373,374,375,376,476,368,369,370,371],"topics":[377],"class_list":["post-969","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-dot-net","tag-kopieren","tag-clipboard","tag-zwischenablage","tag-behaviour","tag-blend","tag-behavior","tag-wpf","tag-kontext-menue","tag-context-menu","tag-copy","topics-wpf-tricks"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WPF-Tricks: Kontext-Men\u00fc per Behavior - ZEISS Digital Innovation Blog<\/title>\n<meta name=\"description\" content=\"Behaviors erlauben Anwendungsdesignern \u2013 mit wenig Aufwand \u2013 \u00c4nderungen am Programmverhalten zu bewirken ohne in den Programmcode einzugreifen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WPF-Tricks: Kontext-Men\u00fc per Behavior - ZEISS Digital Innovation Blog\" \/>\n<meta property=\"og:description\" content=\"Behaviors erlauben Anwendungsdesignern \u2013 mit wenig Aufwand \u2013 \u00c4nderungen am Programmverhalten zu bewirken ohne in den Programmcode einzugreifen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-14T08:02:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-24T13:05:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2016\/11\/201611_WPF_behaviour_fi.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1281\" \/>\n\t<meta property=\"og:image:height\" content=\"734\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sebastian Thurm\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:site\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sebastian Thurm\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/\",\"name\":\"WPF-Tricks: Kontext-Men\u00fc per Behavior - ZEISS Digital Innovation Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2016\/11\/201611_WPF_behaviour_fi.png\",\"datePublished\":\"2016-11-14T08:02:27+00:00\",\"dateModified\":\"2020-09-24T13:05:48+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/e14048bdec36c5e9e58436564f4cf9c1\"},\"description\":\"Behaviors erlauben Anwendungsdesignern \u2013 mit wenig Aufwand \u2013 \u00c4nderungen am Programmverhalten zu bewirken ohne in den Programmcode einzugreifen.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2016\/11\/201611_WPF_behaviour_fi.png\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2016\/11\/201611_WPF_behaviour_fi.png\",\"width\":1281,\"height\":734},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WPF-Tricks: Kontext-Men\u00fc per Behavior\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/e14048bdec36c5e9e58436564f4cf9c1\",\"name\":\"Sebastian Thurm\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/thurm_sebastian-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/thurm_sebastian-150x150.jpg\",\"caption\":\"Sebastian Thurm\"},\"description\":\"Sebastian Thurm ist Dipl.-Ing. f\u00fcr Computervisualistik und arbeitet als Frontend-Entwickler und UX-Berater f\u00fcr die ZEISS Digital Innovation, Dresden. Er war in den letzten Jahren in verschiedenen Projekten im Bereich Handel, Industrie und Energiewirtschaft t\u00e4tig.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/sebastianthurm\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WPF-Tricks: Kontext-Men\u00fc per Behavior - ZEISS Digital Innovation Blog","description":"Behaviors erlauben Anwendungsdesignern \u2013 mit wenig Aufwand \u2013 \u00c4nderungen am Programmverhalten zu bewirken ohne in den Programmcode einzugreifen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/","og_locale":"de_DE","og_type":"article","og_title":"WPF-Tricks: Kontext-Men\u00fc per Behavior - ZEISS Digital Innovation Blog","og_description":"Behaviors erlauben Anwendungsdesignern \u2013 mit wenig Aufwand \u2013 \u00c4nderungen am Programmverhalten zu bewirken ohne in den Programmcode einzugreifen.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/","og_site_name":"Digital Innovation Blog","article_publisher":"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/","article_published_time":"2016-11-14T08:02:27+00:00","article_modified_time":"2020-09-24T13:05:48+00:00","og_image":[{"width":1281,"height":734,"url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2016\/11\/201611_WPF_behaviour_fi.png","type":"image\/png"}],"author":"Sebastian Thurm","twitter_card":"summary_large_image","twitter_creator":"@ZEISS_di","twitter_site":"@ZEISS_di","twitter_misc":{"Verfasst von":"Sebastian Thurm","Gesch\u00e4tzte Lesezeit":"3\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/","name":"WPF-Tricks: Kontext-Men\u00fc per Behavior - ZEISS Digital Innovation Blog","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2016\/11\/201611_WPF_behaviour_fi.png","datePublished":"2016-11-14T08:02:27+00:00","dateModified":"2020-09-24T13:05:48+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/e14048bdec36c5e9e58436564f4cf9c1"},"description":"Behaviors erlauben Anwendungsdesignern \u2013 mit wenig Aufwand \u2013 \u00c4nderungen am Programmverhalten zu bewirken ohne in den Programmcode einzugreifen.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2016\/11\/201611_WPF_behaviour_fi.png","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2016\/11\/201611_WPF_behaviour_fi.png","width":1281,"height":734},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wpf-tricks-kontext-menu-per-behavior\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/"},{"@type":"ListItem","position":2,"name":"WPF-Tricks: Kontext-Men\u00fc per Behavior"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/e14048bdec36c5e9e58436564f4cf9c1","name":"Sebastian Thurm","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/thurm_sebastian-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/thurm_sebastian-150x150.jpg","caption":"Sebastian Thurm"},"description":"Sebastian Thurm ist Dipl.-Ing. f\u00fcr Computervisualistik und arbeitet als Frontend-Entwickler und UX-Berater f\u00fcr die ZEISS Digital Innovation, Dresden. Er war in den letzten Jahren in verschiedenen Projekten im Bereich Handel, Industrie und Energiewirtschaft t\u00e4tig.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/sebastianthurm\/"}]}},"author_meta":{"display_name":"Sebastian Thurm","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/sebastianthurm\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2016\/11\/201611_WPF_behaviour_fi-600x344.png","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/cloud\/\" class=\"advgb-post-tax-term\">Cloud<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">.NET<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Cloud<\/span>","<span class=\"advgb-post-tax-term\">.NET<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Kopieren<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Clipboard<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Zwischenablage<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Behaviour<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Blend<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Behavior<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">WPF<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Kontext-Men\u00fc<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Context Menu<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Copy<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Kopieren<\/span>","<span class=\"advgb-post-tax-term\">Clipboard<\/span>","<span class=\"advgb-post-tax-term\">Zwischenablage<\/span>","<span class=\"advgb-post-tax-term\">Behaviour<\/span>","<span class=\"advgb-post-tax-term\">Blend<\/span>","<span class=\"advgb-post-tax-term\">Behavior<\/span>","<span class=\"advgb-post-tax-term\">WPF<\/span>","<span class=\"advgb-post-tax-term\">Kontext-Men\u00fc<\/span>","<span class=\"advgb-post-tax-term\">Context Menu<\/span>","<span class=\"advgb-post-tax-term\">Copy<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 9\u00a0Jahren ago","modified":"Updated 6\u00a0Jahren ago"},"absolute_dates":{"created":"Posted on November 14, 2016","modified":"Updated on September 24, 2020"},"absolute_dates_time":{"created":"Posted on November 14, 2016 8:02 a.m.","modified":"Updated on September 24, 2020 1:05 p.m."},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/comments?post=969"}],"version-history":[{"count":7,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/969\/revisions"}],"predecessor-version":[{"id":1748,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/969\/revisions\/1748"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media\/1226"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media?parent=969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/categories?post=969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/tags?post=969"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/topics?post=969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}