{"id":4286,"date":"2015-02-15T11:07:42","date_gmt":"2015-02-15T10:07:42","guid":{"rendered":"https:\/\/www.kolja-engelmann.de\/blog\/?p=4286"},"modified":"2015-02-15T11:07:42","modified_gmt":"2015-02-15T10:07:42","slug":"c-designtime-oder-runtime","status":"publish","type":"post","link":"https:\/\/www.kolja-engelmann.de\/blog\/2015\/02\/c-designtime-oder-runtime\/","title":{"rendered":"[C#] &#8211; Designtime oder Runtime?"},"content":{"rendered":"<p><a href=\"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2015\/02\/code-GetIsInDesignMode.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-4288\" src=\"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2015\/02\/code-GetIsInDesignMode-500x375.png\" alt=\"code-GetIsInDesignMode\" width=\"500\" height=\"375\" srcset=\"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2015\/02\/code-GetIsInDesignMode-500x375.png 500w, https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2015\/02\/code-GetIsInDesignMode-300x225.png 300w, https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2015\/02\/code-GetIsInDesignMode-720x540.png 720w, https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2015\/02\/code-GetIsInDesignMode.png 1280w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>F\u00fcr die Entwicklung eines kleinen UserControls wollte ich die Designeransicht von der Laufzeitansicht trennen. W\u00e4hrend also bspw. mein Control im geladenen Zustand erstmal unsichtbar ist, sollte es im Designer trotzdem irgendwie zu erkennen sein, z.B. mit einem gestrichelten Rahmen. Dazu muss man nat\u00fcrlich feststellen, in welchem der beiden Modi man sich befindet. Hier helfen bei WPF Applikationen ein paar statische Methoden des\u00a0<code>System.ComponentModel<\/code>\u00a0Namespace aus der\u00a0<code>PresentationFramework.dll<\/code>, die man in seinem Code abfragen kann.<\/p>\n<pre class=\"lang:default decode:true \">DesignerProperties.GetIsInDesignMode(this);<\/pre>\n<p>Zum Gl\u00fcck ist das .NET Framework herrlich inkonsequent. F\u00fcr Silverlight und Windows Phone 7 gilt obige Methode n\u00e4mlich nicht, bzw. liefert unvorhergesehene Werte. Deswegen fragt\u00a0man hier<strong>\u00a0<\/strong>lieber folgende Variable ab:<\/p>\n<pre class=\"lang:default decode:true \">DesignerProperties.IsInDesignTool<\/pre>\n<p>Ah und auch Microsofts &#8222;neuester&#8220; Streich will eine Extrawurst.\u00a0WinRT \/ Metro und Windows Store Applicationen m\u00f6chten gern <code>DesignModeEnabled<\/code> abgefragt\u00a0bekommen.<\/p>\n<pre class=\"lang:default decode:true \">Windows.ApplicationModel.DesignMode.DesignModeEnabled<\/pre>","protected":false},"excerpt":{"rendered":"<p>F\u00fcr die Entwicklung eines kleinen UserControls wollte ich die Designeransicht von der Laufzeitansicht trennen. W\u00e4hrend also bspw. mein Control im geladenen Zustand erstmal unsichtbar ist, sollte es im Designer trotzdem irgendwie zu erkennen sein, z.B. mit einem gestrichelten Rahmen. Dazu muss man nat\u00fcrlich feststellen, in welchem der beiden Modi man sich befindet.<\/p>\n","protected":false},"author":1,"featured_media":4288,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[38],"tags":[98,39],"class_list":["post-4286","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codeschnippsel","tag-net","tag-c"],"jetpack_featured_media_url":"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2015\/02\/code-GetIsInDesignMode.png","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/4286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/comments?post=4286"}],"version-history":[{"count":0,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/4286\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media\/4288"}],"wp:attachment":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media?parent=4286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/categories?post=4286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/tags?post=4286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}