{"version":"1.0","provider_name":"Xamarin Blog","provider_url":"https:\/\/devblogs.microsoft.com\/xamarin","author_name":"J\u00e9r\u00e9mie Laval","author_url":"https:\/\/devblogs.microsoft.com\/xamarin\/author\/jeremie\/","title":"AutoLayout with Xamarin.Mac - Xamarin Blog","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"vvLSvdRllx\"><a href=\"https:\/\/devblogs.microsoft.com\/xamarin\/autolayout-with-xamarin-mac\/\">AutoLayout with Xamarin.Mac<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/devblogs.microsoft.com\/xamarin\/autolayout-with-xamarin-mac\/embed\/#?secret=vvLSvdRllx\" width=\"600\" height=\"338\" title=\"&#8220;AutoLayout with Xamarin.Mac&#8221; &#8212; Xamarin Blog\" data-secret=\"vvLSvdRllx\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/devblogs.microsoft.com\/xamarin\/wp-includes\/js\/wp-embed.min.js\n\/* ]]> *\/\n<\/script>\n","thumbnail_url":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2019\/03\/swimlane-xamarin-cross-platform-1.png","thumbnail_width":636,"thumbnail_height":300,"description":"As part of our (almost) weekly preview releases of the iOS designer, we recently revamped our property panel using native Cocoa widgets. This proved to be an interesting challenge on the layout side of things since, historically, Cocoa didn\u2019t offer any layout primitives like Gtk+ or WPF. And the property panel, being fairly dynamic in [&hellip;]"}