XAML http://blogs.ugidotnet.org/AllePalle_Blog/category/XAML.aspx XAML it-IT Alessandro Scardova Subtext Version 2.6.0.0 Addio Metro: &egrave; stato bello. http://blogs.ugidotnet.org/AllePalle_Blog/archive/2012/10/03/addio-metro-egrave-stato-bello.aspx <p><img width="444" height="294" title="image" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="image" border="0" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/allePalle_blog/Windows-Live-Writer/Addio-Metro--stato-bello_A731/image_3.png" /></p> <p>Mancano pochi giorni al lancio ufficiale di Windows 8 e finalmente sembra che si sia chiarita la vicenda intorno al codename “Metro”,  che nella fase Beta indicava sia un’applicazione per Windows 8 e Windows RT che il particolare design che le caratterizza, arrivando fino a definire la nuova pagina Start di Windows 8.</p> <p>Tralascerò i motivi per cui Microsoft ha dovuto abbandonare il codename  e la incredibile vicenda legata ad una nota catena di Cash &amp; Carry tedesca per concentrami sul concetto di Design Language.</p> <p><img width="444" height="272" title="image" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="image" border="0" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/allePalle_blog/Windows-Live-Writer/Addio-Metro--stato-bello_A731/image12.png" /></p> <p>La versione RTM di Visual Studio chiama correttamente i template per sviluppare applicazioni per Windows 8 e Windows RT “<strong>Windows Store</strong>” e da un <a target="_blank" href="http://www.zdnet.com/microsoft-finally-comes-cleaner-on-post-metro-naming-plans-7000004151/">post di Mary Jo Foley</a> di qualche giorno fa si fa chiarezza (o quasi) sul punto: </p> <p><strong>Windows Store apps <br /> </strong>(per i fanatici del branding la parola <em>apps</em> è in minuscolo) <br /> Sono le app realizzate per Windows 8 e Windows RT che verranno distribuite attraverso il Windows Store, che non necessariamente devono avere un particolare design style, fermo restando il rispetto dei <a target="_blank" href="http://msdn.microsoft.com/en-us/library/windows/apps/hh694083.aspx">requisiti per la certificazione</a>, attualmente alla versione 3.0. </p> <p><strong>Modern apps <br /> </strong>In un primo tempo pensavo che <em>Modern</em> identificasse il nuovo nome del design language, anche perché i concetti base sono simili a quello che viene definito <strong><a target="_blank" href="http://it.wikipedia.org/wiki/Movimento_Moderno">Movimento Moderno</a></strong>, ma mi sono presto dovuto ricredere: Somasegar in una intervista telefonica, definisce <em>"Modern apps" is a sweeping term that mean apps that work on connected devices and make use of continuous services,". </em>Non ci troviamo quindi di fronte ad una definizione di un design ma piuttosto ad una architettura specifica per applicazioni mobili e non solo, in grado di consumare servizi remoti. </p> <p><strong>Microsoft design style</strong> <br /> a quanto pare Microsoft ha messo il cappello al design language: quello che fino ad oggi abbiamo chiamato Metro style è diventato <strong>il design language di Microsoft</strong>, nato e pensato per le <em>Windows Store apps</em> <a target="_blank" href="http://msdn.microsoft.com/en-us/library/windows/apps/hh464920.aspx#traits_8_embrace_metro">i cui principi</a> possono essere estesi ad altri tipi di applicazioni, sia desktop che web, a documenti e presentazioni.</p> <p>La documentazione è ancora in aggiornamento con la nuova nomenclatura, le stesso <a target="_blank" href="http://go.microsoft.com/fwlink/?LinkId=258743">PDF che riassume UX Guildelines</a> in versione RTM citano ancora Metro styles app, in generale però quando si parla di design delle Windows Store apps si fa riferimento al Microsoft design style. </p> <p>Salvo valide motivazioni, ad esempio legate ad un particolare brand dell’app, se volete sviluppare app Windows Store di successo è bene seguire i principi del Microsoft design stile definiti in <a target="_blank" href="http://msdn.microsoft.com/en-us/library/windows/apps/hh464920.aspx">questa pagina</a>.</p> <p>Addio Metro, è stato divertente giocare col quel nome, ma oggi diamo un caloroso benvenuto al <strong>Microsoft design style!</strong></p><img src="http://blogs.ugidotnet.org/AllePalle_Blog/aggbug/101253.aspx" width="1" height="1" /> Alessandro Scardova http://blogs.ugidotnet.org/AllePalle_Blog/archive/2012/10/03/addio-metro-egrave-stato-bello.aspx Wed, 03 Oct 2012 14:39:53 GMT http://blogs.ugidotnet.org/AllePalle_Blog/archive/2012/10/03/addio-metro-egrave-stato-bello.aspx#feedback 1 http://blogs.ugidotnet.org/AllePalle_Blog/comments/commentRss/101253.aspx Metro UX con XAML: creare una GridView custom http://blogs.ugidotnet.org/AllePalle_Blog/archive/2012/03/25/metro-ux-con-xaml-creare-una-gridview-custom.aspx <p>Molti mi hanno chiesto come creare in XAML una griglia con gli elementi che possano spammare su più righe o su più colonne, più o meno come accade con la pagina Start di Windows 8 o come potete vedere in altre applicazioni Metro.</p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/allePalle_blog/Windows-Live-Writer/Creare-una-Grid-Custom-con_E8C8/screenshot1_2.png"><img title="screenshot1" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="screenshot1" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/allePalle_blog/Windows-Live-Writer/Creare-una-Grid-Custom-con_E8C8/screenshot1_thumb.png" width="289" height="149" /></a></p> <p>La soluzione è abbstanza semplice: basta ereditare il controllo GridView e fare un override del metodo <strong>PrepareContainerForItemOverride</strong> avendo cura di inserire nel oggetto bindato all’item (il model se usate MVVM) le proprietà che rappresentano i valori di RowSpan e ColumnSpan dell’oggetto contenitore, nel mio caso un <em>VariableSizedWrapGrid</em> in questo modo<em>:</em></p> <p>public class SpannableGridView : GridView <br />{ <br />    protected override void PrepareContainerForItemOverride(Windows.UI.Xaml.DependencyObject element, object item) <br />    { <br />        var dataItem = item as SampleDataItem;</p> <p>        if (dataItem != null) <br />        { <br />            element.SetValue(VariableSizedWrapGrid.ColumnSpanProperty, dataItem.ColumnSpan); <br />            element.SetValue(VariableSizedWrapGrid.RowSpanProperty, dataItem.RowSpan); <br />        }</p> <p>        base.PrepareContainerForItemOverride(element, item); <br />    } <br />} <br /></p> <p>Da notare che:</p> <ul> <li>il <strong>DataTemplate</strong> associato all’item non deve essere a dimensione fissa perchè deve adattarsi alle varie dimensioni; </li> <li>se usate un <em>VariableSizedWrapGrid</em> dovete impostare la dimensione di ItemHeight e ItemWidth alla dimensione che dovrà avere l’item con ColumnSpan  e RowSpan impostati a 1. </li> </ul> <p>Detto questo potete scaricarvi l’esempio <a href="https://skydrive.live.com/redir.aspx?cid=341fc16cf215d488&amp;resid=341FC16CF215D488!494&amp;parid=341FC16CF215D488!169" target="_blank">qua</a>.</p><img src="http://blogs.ugidotnet.org/AllePalle_Blog/aggbug/100891.aspx" width="1" height="1" /> Alessandro Scardova http://blogs.ugidotnet.org/AllePalle_Blog/archive/2012/03/25/metro-ux-con-xaml-creare-una-gridview-custom.aspx Sun, 25 Mar 2012 18:20:35 GMT http://blogs.ugidotnet.org/AllePalle_Blog/archive/2012/03/25/metro-ux-con-xaml-creare-una-gridview-custom.aspx#feedback http://blogs.ugidotnet.org/AllePalle_Blog/comments/commentRss/100891.aspx