{"id":824,"date":"2016-11-14T08:16:45","date_gmt":"2016-11-14T08:16:45","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?p=824"},"modified":"2020-09-24T13:51:08","modified_gmt":"2020-09-24T13:51:08","slug":"wpf-tricks-context-menu-via-behavior","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/","title":{"rendered":"WPF Tricks: Context Menu via Behavior"},"content":{"rendered":"\n<p>In WPF, <em>behaviors <\/em>allow for an element of functionality to be packaged into a reusable component. <em>Behaviors <\/em>enable application designers to trigger changes in the program behavior with little effort and without interfering with the program code. For example, the developers provide <em>behaviors <\/em>for drag &amp; drop or touch interactions that are then simply used on the corresponding element in the \u201cblend\u201d. This tutorial shows you how to create a context menu by means of a <em>behavior<\/em>.<\/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\">The goal<\/h2>\n\n\n\n<p>Enable the user to copy the content of a list. As we do not want to convert the individual list elements into editable text boxes, a context menu is required to enable copying:<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/08\/201611_WPF-Tricks-2_en-600x164.png\" alt=\"\" class=\"wp-image-949\" width=\"300\" height=\"82\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/08\/201611_WPF-Tricks-2_en-600x164.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/08\/201611_WPF-Tricks-2_en-640x175.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/08\/201611_WPF-Tricks-2_en.png 759w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 300px\" \/><figcaption><em>Figure 1: Context menu for copying the content<\/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\">Here is how:<\/h2>\n\n\n\n<p>We create a new <em>behavior<\/em> derived from <em>behavior&lt;T&gt;<\/em>. The blend behavior is located in System.Windows.Interactivity. The type is specified as <em>FrameworkElement<\/em>\u2014this allows our <em>behavior<\/em> to work on virtually all 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 CopyContentBahavior : 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>First, we override <em>OnAttached()<\/em> and <em>OnDetaching()<\/em>. This is where we can react if a behavior is added or removed.<\/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>The <em>behavior<\/em> gives us access to the element to which it has been attached. This is what the <em>AssociatedObject <\/em>property is for. The <em>AssociatedObject<\/em> is always of the type specified in the class definition (here: <em>FrameworkElement<\/em>). Now, we attach our context menu with the desired options to the <em>AssociatedObject<\/em>. In the current example, the command \u201cCopy content\u201d is enough. This command is supposed to copy the clicked-on text to the clipboard. In the example, an icon is provided for the menu entry as well:<\/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 menuEntry = new MenuItem\n     {\n      Header = \"Copy content\",\n      Icon = new Image { Source = logo }\n     };\n     menuEntry.Click += MenuEntryOnClick;\n     AssociatedObject.ContextMenu = new ContextMenu();\n     AssociatedObject.ContextMenu.Items.Add(menuEntry);\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>The element to which we add our context menu is not necessarily the element the content of which we want to copy. We want to copy the content of a <em>ListViewItems<\/em>, not the entire <em>ListView<\/em>. Applying the <em>behavior<\/em> to every single list item, however, would be unreasonably arduous. Therefore, we add an event handler to the <em>AssociatedObject<\/em>. A right-hand click is not only supposed to open the menu, but identify the \u201cclicked-on\u201d element at the same time. We store the \u201chit\u201d element in the \u2018_element\u2019 field.<\/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>Now, we implement the actual copying function: For this purpose, the menu entry is given a corresponding event handler. We assume that the hit element is a text block. If it is not, we cannot really copy anything to the clipboard anyway.<\/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 MenuEntryOnClick(object sender, RoutedEventArgs args)\n    {\n     var textBlock = _hitElement 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>Lastly, we use the <em>behavior<\/em> in our application. It is important that the namespace \u201cblend\u201d is integrated as well: 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:CopyContentBahavior\/>\n     &lt;\/i:Interaction.Behaviors>\n    &lt;\/ListView><\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Behaviors enable application designers to trigger changes in the program behavior with little effort and without interfering with the program code. This tutorial shows how to create a context menu by means of a behavior.<\/p>\n","protected":false},"author":81,"featured_media":1119,"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":[9,13],"tags":[371,400,401,402,403,404,405,406,407,408],"topics":[274],"class_list":["post-824","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-dot-net","tag-wpf","tag-kontext-menu","tag-context-menu","tag-copy","tag-kopieren","tag-clipboard","tag-zwischenablage","tag-behaviour","tag-blend","tag-behavior","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: Context Menu via Behavior - ZEISS Digital Innovation Blog<\/title>\n<meta name=\"description\" content=\"Behaviors enable application designers to trigger changes in the program behavior with little effort and without interfering with the program code.\" \/>\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\/en\/wpf-tricks-context-menu-via-behavior\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WPF Tricks: Context Menu via Behavior - ZEISS Digital Innovation Blog\" \/>\n<meta property=\"og:description\" content=\"Behaviors enable application designers to trigger changes in the program behavior with little effort and without interfering with the program code.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-14T08:16:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-24T13:51:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2016\/11\/201611_WPF_Tricks_Behavior_fi.png\" \/>\n\t<meta property=\"og:image:width\" content=\"723\" \/>\n\t<meta property=\"og:image:height\" content=\"407\" \/>\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:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sebastian Thurm\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/\",\"name\":\"WPF Tricks: Context Menu via Behavior - ZEISS Digital Innovation Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2016\/11\/201611_WPF_Tricks_Behavior_fi.png\",\"datePublished\":\"2016-11-14T08:16:45+00:00\",\"dateModified\":\"2020-09-24T13:51:08+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/b9853c1d7f59ed409d4b93b5111f309a\"},\"description\":\"Behaviors enable application designers to trigger changes in the program behavior with little effort and without interfering with the program code.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2016\/11\/201611_WPF_Tricks_Behavior_fi.png\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2016\/11\/201611_WPF_Tricks_Behavior_fi.png\",\"width\":723,\"height\":407},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WPF Tricks: Context Menu via Behavior\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/b9853c1d7f59ed409d4b93b5111f309a\",\"name\":\"Sebastian Thurm\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/05\/thurm_sebastian-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/05\/thurm_sebastian-150x150.jpg\",\"caption\":\"Sebastian Thurm\"},\"description\":\"Sebastian Thurm is a graduate engineer for computer visualisation and works as a frontend developer and UX consultant for ZEISS Digital Innovation, Dresden. Recently he has been involved in various projects in the areas of trade, industry and energy management.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/ensebastianthurm\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WPF Tricks: Context Menu via Behavior - ZEISS Digital Innovation Blog","description":"Behaviors enable application designers to trigger changes in the program behavior with little effort and without interfering with the program code.","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\/en\/wpf-tricks-context-menu-via-behavior\/","og_locale":"en_US","og_type":"article","og_title":"WPF Tricks: Context Menu via Behavior - ZEISS Digital Innovation Blog","og_description":"Behaviors enable application designers to trigger changes in the program behavior with little effort and without interfering with the program code.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/","og_site_name":"Digital Innovation Blog","article_published_time":"2016-11-14T08:16:45+00:00","article_modified_time":"2020-09-24T13:51:08+00:00","og_image":[{"width":723,"height":407,"url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2016\/11\/201611_WPF_Tricks_Behavior_fi.png","type":"image\/png"}],"author":"Sebastian Thurm","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Sebastian Thurm","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/","name":"WPF Tricks: Context Menu via Behavior - ZEISS Digital Innovation Blog","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2016\/11\/201611_WPF_Tricks_Behavior_fi.png","datePublished":"2016-11-14T08:16:45+00:00","dateModified":"2020-09-24T13:51:08+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/b9853c1d7f59ed409d4b93b5111f309a"},"description":"Behaviors enable application designers to trigger changes in the program behavior with little effort and without interfering with the program code.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2016\/11\/201611_WPF_Tricks_Behavior_fi.png","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2016\/11\/201611_WPF_Tricks_Behavior_fi.png","width":723,"height":407},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wpf-tricks-context-menu-via-behavior\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/"},{"@type":"ListItem","position":2,"name":"WPF Tricks: Context Menu via Behavior"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/b9853c1d7f59ed409d4b93b5111f309a","name":"Sebastian Thurm","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/05\/thurm_sebastian-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2020\/05\/thurm_sebastian-150x150.jpg","caption":"Sebastian Thurm"},"description":"Sebastian Thurm is a graduate engineer for computer visualisation and works as a frontend developer and UX consultant for ZEISS Digital Innovation, Dresden. Recently he has been involved in various projects in the areas of trade, industry and energy management.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/ensebastianthurm\/"}]}},"author_meta":{"display_name":"Sebastian Thurm","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/author\/ensebastianthurm\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-content\/uploads\/sites\/3\/2016\/11\/201611_WPF_Tricks_Behavior_fi-600x338.png","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/cloud\/\" class=\"advgb-post-tax-term\">Cloud<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/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\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">WPF<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Kontext-Men\u00fc<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Context Menu<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Copy<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Kopieren<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Clipboard<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Zwischenablage<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Behaviour<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Blend<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/category\/dot-net\/\" class=\"advgb-post-tax-term\">Behavior<\/a>"],"unlinked":["<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>","<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>"]}},"comment_count":"0","relative_dates":{"created":"Posted 9 years ago","modified":"Updated 6 years 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:16 am","modified":"Updated on September 24, 2020 1:51 pm"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/824","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/users\/81"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/comments?post=824"}],"version-history":[{"count":6,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/824\/revisions"}],"predecessor-version":[{"id":1118,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/posts\/824\/revisions\/1118"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/media\/1119"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/media?parent=824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/categories?post=824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/tags?post=824"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/en\/wp-json\/wp\/v2\/topics?post=824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}