<?xml version="1.0" encoding="iso-8859-15"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><channel><title>blogs.ASPItalia.com</title><link>http://blogs.aspitalia.com//nostromo//</link><description>blogs.ASPItalia.com</description><language>it-it</language><copyright>1998-2012 ASPItalia.com/blogs.ASPItalia.com</copyright><generator>Generated by feed.ASPItalia.com 'Cortana' 2012.5.12</generator><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><sy:updateBase>1998-01-01T12:00+00:00</sy:updateBase><lastBuildDate>Tue, 19 May 2009 09:50:00 GMT</lastBuildDate><image><title>blogs.ASPItalia.com</title><url>http://gui.aspitalia.com/images/aspitalia/syndication.gif</url><link>http://blogs.aspitalia.com//nostromo//</link></image><item><title>.NET Framework 4.0 beta 1: WPF 4.0</title><link>http://blogs.aspitalia.com/nostromo/post2497/.NET-Framework-4.0-Beta-1-WPF-4.0.aspx</link><pubDate>Tue, 19 May 2009 09:50:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2497" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Con il rilascio del VS 2010 e del .NET Framework 4.0, Microsoft non apporta modifiche rivoluzionarie a WPF 4.0 ma ne consolida, amplia e migliora quelle che sono le peculiari caratteristiche.&lt;/p&gt;&lt;p&gt;WPF 4.0 supporta pienamente Windows 7, di conseguenza potremo dotare le nostre applicazioni del Multi-Touch, ovvero la possibilità di interagire con più dita con l'interfaccia utente della nostra applicazione.&lt;/p&gt;&lt;p&gt;Per supportare in modo adeguato il&amp;#xa0; Multi-Touch&amp;#xa0; sono stati apportati dei cambiamenti all'elemento base di tutti gli oggetti della nostra interfaccia, ad esempio il tipo UIElement&amp;#xa0; riconosce gesti come il double-tap o&amp;#xa0; il rollver.&lt;/p&gt;&lt;p&gt;Ma Windows 7 non è solo Multi-Touch, non può non saltare all'occhio la nuova Taskbar, la quale se vogliamone ne rivoluziona l'utilizzo in ambiente Windows.&lt;/p&gt;&lt;p&gt;WPF 4.0 supporta pienamente la nuova TaskBar introducendo il supporto alle Jumplists, Progress bars, Thumbnails e Icon Overlay.&lt;/p&gt;&lt;p&gt;In generale l'integrazione di WPF con Windows e con le applicazioni che lo hanno reso celebre è notevolmente migliorata, ad esempio per creare UI coerenti è stato introdotto il supporto alle Ribbon, quella particolare interfaccia resa celebre da Office 2007.&lt;/p&gt;&lt;p&gt;WPF 4.0 supporta Ribbontabs, Ribbongroups e&amp;#xa0; Keytips il tutto condito dal supporto a Design time.&lt;/p&gt;&lt;p&gt;Nel campo grafico è stata introdotta la possibilità di gestire in modo fine e granulare il caching degli elementi renderizzati, così da migliorare le performace generali, miglioramenti anche nel rendering del testo, adesso molto più nitido e definito.&lt;/p&gt;&lt;p&gt;In WPF 4.0 viene introdotto un concetto derivato da Silverlight 2.0, il Visual State Manager, ovvero la possibilità di associare ad un particolare stato logico di un controllo uno stato visivo, benché in WPF mediante i trigger sia possibile fare questo e molto altro, spesso l'implementazione può risultare difficoltosa, complessa e difficilemente gestibile mediante tool.&lt;/p&gt;&lt;p&gt;Sul fronte Tool, una delle caratteristiche più desiderate in assoluto è l'introduzione nel VS 2010 dell'Intellisense per le Markup exstension, è stato inoltre migliorato il DataBinding e in generale è possibile editare più proprietà attraverso l'IDE, senza la necessità di editare manualemente lo XAML.&lt;/p&gt;&lt;p&gt;Maggiori informazioni e le informazioni per il download sono disponibili nel nostro mini-sito dedicato al &lt;a href="http://netfx4.winfxitalia.com/"&gt;.NET Framework 4.0&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework_4.0/" rel="tag"&gt;.NET Framework 4.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Visual_Studio/" rel="tag"&gt;Visual Studio&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Windows_7/" rel="tag"&gt;Windows 7&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Windows_Client/" rel="tag"&gt;Windows Client&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post2497/.NET-Framework-4.0-Beta-1-WPF-4.0.aspx"&gt;&lt;em&gt;.NET Framework 4.0 beta 1: WPF 4.0&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON, .NET Framework 4.0, Visual Studio, Windows 7, Windows Client, .NET Framework</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2497/.NET-Framework-4.0-Beta-1-WPF-4.0.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post2497/.NET-Framework-4.0-Beta-1-WPF-4.0.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2497.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2497</trackback:ping></item><item><title>CTP che va SDk che trovi</title><link>http://blogs.aspitalia.com/nostromo/post1694/CTP-VA-SDk-Trovi.aspx</link><pubDate>Thu, 20 Jul 2006 10:15:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1694" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;finalmente ieri dopo la dipartita della ennesima macchina virtuale, a causa di una sciagurata disinstallazione do WinFx beta 2, sono riuscito a installare la CTP di luglio di quello che fu WinFX ovvero .NET Framework 3.0.&lt;br /&gt;&lt;br /&gt;non mi ho verificato se sono state apportate modifiche, perlomeno il Namespace System.Windows.Media.Media3D sembra stabile...anche se incrocio le dita per l'introduzione di alcune cose &amp;quot;potate&amp;quot; dalla beta 2.&lt;br /&gt;&lt;br /&gt;una piacevole sopresa invece la porta il nuovoSDK, il cambio di nome a portato una riorganizzazione dei contenuti, adesso si trovano dove ci si aspetta di trovarli.&lt;br /&gt;&lt;br /&gt;molto piacevole trovare finalmente la documentazione della classe Viewport3DVisual, in pratica migliori perormance al costo di perdere alcune features... vedremo se l'incremento vale la rinuncia.&lt;br /&gt;naturalmente rimane la classica Viewport.&lt;br /&gt;&lt;br /&gt;portandosi dietro la parola Visual c'era da immaginarselo che fornisse migliori performace, Visual è l'oggeto chiave di tutta l'architettura del nuovo layer di presentazione.&lt;br /&gt;&lt;br /&gt;Visual è il punto di connessone tra le api gestite e le DirectX (vabbe ho tralasciato volutamente il milocore :D)&lt;/p&gt;&lt;p&gt;Certo tutto questo ben di dio di documentazione farebbe gola averla in italiano...sto inglese mi iniza ad annoiare..abbiamo vinto o no i mondiali :D&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.0/" rel="tag"&gt;.NET Framework 3.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Windows_Communication_Foundation/" rel="tag"&gt;Windows Communication Foundation&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Windows_Presentation_Foundation/" rel="tag"&gt;Windows Presentation Foundation&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1694/CTP-VA-SDk-Trovi.aspx"&gt;&lt;em&gt;CTP che va SDk che trovi&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON, .NET Framework, .NET Framework 3.0, Windows Communication Foundation, Windows Presentation Foundation</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1694/CTP-VA-SDk-Trovi.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1694/CTP-VA-SDk-Trovi.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1694.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1694</trackback:ping></item><item><title>bye bye ScreenSpaceLines3D</title><link>http://blogs.aspitalia.com/nostromo/post1655/Bye-Bye-ScreenSpaceLines3D.aspx</link><pubDate>Fri, 23 Jun 2006 13:35:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1655" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;ieri sera mi stavo arabattando per rendere più chiari gli esempi di un articolo che presto troverete pubblicato su &lt;a href="http://www.winfxitalia.com/"&gt;winfxitalia&lt;/a&gt;.&lt;br /&gt;l'articolo esplora le caratteristiche 3D di WPF, in particolare avevo bisogno della classe  ScreenSpaceLines3D, comoda per tracciare semplici linee nello spazio 3D, indispensabile per tutti quelli che vogliono ottere un effetto WireFrame.&lt;br /&gt;con mia somma sorpresa nessun tentativo di utilizzare la classe dava esito positivo,verso l'una (&lt;a href="http://blogs.aspitalia.com/rickyvr/"&gt;riccardo&lt;/a&gt; è onnipresente online :D) faccio una leggera irruzione su MSDN: nulla.&lt;br /&gt;stanco me ne vado a letto, visto che il concerto che si teneva a due passi da casa mia volgeva al terminee potevo finalemente sentire i miei pensieri e riposare.&lt;br /&gt;solo nel pomeriggio di oggi ho trovato la &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=426035&amp;amp;SiteId=1"&gt;risposta&lt;/a&gt; alle mie domande: semplice questa classe non c'è più nella beta 2...già tra le varie CTP c'è stata una moria di classi, in una delle quali mi ricordo esistava un &amp;quot;segnaposto&amp;quot; che accendeva in me la speranza, il segnaposto era per la mappa di bump, comunemente utilizzata per il bumpmapping, insomma se volevate d'are l'impressione di un materiale rugoso era la l'ideale&lt;br /&gt;non ho capito bene il motivo della rimozione di ScreenSpaceLines3D, spero solo ricompaia nella RTM.&lt;br /&gt;detto questo stasera continuiro l'articolo...avvertendo &lt;a href="http://blogs.aspitalia.com/ricciolo/"&gt;ricciolo&lt;/a&gt; che questa è una scusa perfetta per ritardare la consegna fno a martedi :D&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Windows_Presentation_Foundation/" rel="tag"&gt;Windows Presentation Foundation&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/XAML/" rel="tag"&gt;XAML&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1655/Bye-Bye-ScreenSpaceLines3D.aspx"&gt;&lt;em&gt;bye bye ScreenSpaceLines3D&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON, Windows Presentation Foundation, XAML</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1655/Bye-Bye-ScreenSpaceLines3D.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1655/Bye-Bye-ScreenSpaceLines3D.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1655.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1655</trackback:ping></item><item><title>WinFX cambiamenti natalizzi</title><link>http://blogs.aspitalia.com/nostromo/post1396/WinFX-Cambiamenti-Natalizzi.aspx</link><pubDate>Wed, 21 Dec 2005 09:56:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1396" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;per quelli come me, che stanno disinstallando la CTP novembrina di WinFX (dita incrociate annesse), per mettere su quella Natalizia ecco un articolo su MSDN che spiega cosa cambia:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/windowsvista/default.aspx?pull=/library/en-us/dnlong/html/introdecctp.asp"&gt;cambiamenti nella versione natalizia&lt;/a&gt;&lt;br /&gt;buona lettura.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.0/" rel="tag"&gt;.NET Framework 3.0&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1396/WinFX-Cambiamenti-Natalizzi.aspx"&gt;&lt;em&gt;WinFX cambiamenti natalizzi&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON, .NET Framework, .NET Framework 3.0</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1396/WinFX-Cambiamenti-Natalizzi.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1396/WinFX-Cambiamenti-Natalizzi.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1396.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1396</trackback:ping></item><item><title>Avalon tutto scorre </title><link>http://blogs.aspitalia.com/nostromo/post1340/Avalon-Scorre.aspx</link><pubDate>Tue, 08 Nov 2005 14:24:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1340" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;era un pezzetto che non riprendevo a leggere qualcosa su WPF per chi non ama l'abbreviazioni Windows Presentatio Fondation, il buon &amp;quot;vecchio&amp;quot; Avalon .&lt;br /&gt;sono rimasto un bel pò indietro.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/karstenj/archive/2005/10/11/479924.aspx"&gt;&lt;br /&gt;leggendo quà&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/danlehen/archive/2005/10/09/478923.aspx"&gt;e quà&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;il cambiamento è significativo, la proprietà Models di Viewport3D verrà rimossa e sostituita dalla proprietà Children, del tipo Visual3DCollection, una collezione di oggeti Visual3D.&lt;br /&gt;a questo punto è lecito chiedersi: dove metto le mie mesh (Model3D )? risposta: nella proprietà Content di ModelVisual3d (eredita da visual3D).&lt;br /&gt;perche questo cambiamento? premetto che non ho avuto modo di trovare i limiti della vecchia implementazione.&lt;br /&gt;ma quello che avevo, in parte intuito era giusto, non potevo inplementare una libreria di primiteve, che per chi mastica un pò di 3d sono il cono il cubo e stranemente anche la teiera,&lt;br /&gt;al massimo mi dovevo accontentare di inserire la definizione della mesh come risorsa.&lt;br /&gt;per la cronaca è apparso anche un nuovo tipo Viewport3DVisual con documentazione pari a zero :)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1340/Avalon-Scorre.aspx"&gt;&lt;em&gt;Avalon tutto scorre &lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1340/Avalon-Scorre.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1340/Avalon-Scorre.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1340.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1340</trackback:ping></item><item><title>Windows Presentation Foundation</title><link>http://blogs.aspitalia.com/nostromo/post1253/Windows-Presentation-Foundation.aspx</link><pubDate>Mon, 26 Sep 2005 13:06:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1253" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Windows Presentation Foundation &lt;br /&gt;
Un applicazione che usa Windows Presentation Foundation , per gli amici WPF per 
gli intimi Avalon :), &amp;egrave; costituita in larga parte da una collezione di 
pagine XAML , la similitudine con le pagine Web, da questo punto di vista &amp;egrave; 
forte.&lt;br /&gt;
a dare un senzo a questa collezione di pagine , &amp;egrave; application model.&lt;br /&gt;
ci sono due tipi di apllicazioni quelle web, e quelle installabili, si sviluppano 
allo stesso modo (figata), i cambiamenti sono a livello di compilazione, naturalmente 
i due modelli godono di diritti diversi.&lt;br /&gt;
quello Web, avr&amp;agrave; un accesso limitato al FileSystem ed al registro, ma sar&amp;agrave; 
eseguibile semplicemente al click su un link, quella istallabile, avr&amp;agrave; 
un accesso pieno alle risorse della macchina, ma per constro dovr&amp;agrave; essere 
installata esplicitamente.&lt;br /&gt;
anche se siamo abituati, utilizzano le Template del VS 2005, a creare l'applicazione 
in maniera dichiarativa, possiamo farlo anche in modo procedurale:&lt;br /&gt;
prendiamo questo frammento di codice:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;using System;&lt;br /&gt;
  using System.Windows;&lt;br /&gt;
  using System.Windows.Documents;&lt;br /&gt;
  using System.Threading;&lt;br /&gt;
  using System.Windows.Controls;&lt;br /&gt;
  using System.Windows.Shapes;&lt;br /&gt;
  using System.Windows.Media;&lt;br /&gt;
&lt;br /&gt;
  namespace AvalonApplication1&lt;br /&gt;
  {&lt;br /&gt;
  class test : Application&lt;br /&gt;
  {&lt;br /&gt;
  TextBlock txtElement;&lt;br /&gt;
  Canvas rooCanvas;&lt;br /&gt;
  Ellipse ellipse;&lt;br /&gt;
  Window win; protected override void OnStartup(StartupEventArgs e)&lt;br /&gt;
  {&lt;br /&gt;
  win = new System.Windows.Window();&lt;br /&gt;
  rooCanvas = new Canvas();&lt;br /&gt;
&lt;br /&gt;ellipse = new Ellipse();&lt;br /&gt;
  ellipse.Height = 50;&lt;br /&gt;
  ellipse.Width = 300;&lt;br /&gt;
  ellipse.Fill = Brushes.Red;&lt;br /&gt;
  ellipse.Stroke = Brushes.Black;&lt;br /&gt;
  ellipse.StrokeThickness = 2;&lt;br /&gt;
  Canvas.SetLeft(ellipse, 160);&lt;br /&gt;
  Canvas.SetTop(ellipse, 300);&lt;br /&gt;
  win.Content = rooCanvas;&lt;br /&gt;
  rooCanvas.Children.Add(ellips);&lt;br /&gt;
  win.Show();&lt;br /&gt;
  }&lt;br /&gt;

&lt;br /&gt;
internal sealed class TestMain&lt;br /&gt;
  {&lt;br /&gt;
  [System.STAThread()]&lt;br /&gt;
  public static void Main()&lt;br /&gt;
  {&lt;br /&gt;
  test app = new test();&lt;br /&gt;
  app.Run();&lt;br /&gt;
  }&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;creiamo una classe che eredita da Applicationm, nel metodo OnStartup, creiamo 
  un Canvas (eredita da Panel, &amp;egrave; uno dei controlli destinati al layout), 
  un elisse (System.Windows.Shapes) impostiamo le propriet&amp;agrave;, l'aggiungiamo 
  alla collezione dei controlli nel Canvas, a sua volta &amp;quot;scelto&amp;quot; come 
  contenuto della finestra, infine con win.Show la mostriamo.&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.0/" rel="tag"&gt;.NET Framework 3.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Windows_Presentation_Foundation/" rel="tag"&gt;Windows Presentation Foundation&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1253/Windows-Presentation-Foundation.aspx"&gt;&lt;em&gt;Windows Presentation Foundation&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON, .NET Framework 3.0, Windows Presentation Foundation</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1253/Windows-Presentation-Foundation.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1253/Windows-Presentation-Foundation.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1253.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1253</trackback:ping></item><item><title>cosa aspettarsi da chi sviluppa con Avalon</title><link>http://blogs.aspitalia.com/nostromo/post1249/Aspettarsi-Sviluppa-Avalon.aspx</link><pubDate>Tue, 20 Sep 2005 13:09:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1249" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Avalon (a me piace sempre chiamarlo così) ribattezzato Windows Presentation Fondation, sta arrivando.&lt;br /&gt;ieri dopo varie peripezie, sono riuscito a installare la September CTP, mi ha levato un pò il sonno, ma ci sono riuscito.&lt;br /&gt;dando una brevissima occhiata, si notano (se non mi sbaglio) alune nuove classi che ereditano da Panel (una classe base usata per il Layout).&lt;br /&gt;alcuni effetti per le Bitmap (tipo le ombre), non ho controllato, se ci sono novità per il 3D.&lt;br /&gt;cosa porta con se di nuovo WPF (Windows Presentation Fondation), sicuramente una grande liberta per il grafico, libertà di creare applicazioni dal look accattivante, che sfruttino a dovere l'hardware esistente.&lt;br /&gt;la separazione tra presentazione e il codice è netta, il grafico potrebbe creare tutte le risorse necessarie, conprese le animazioni, e lasciare che il programmatore le utilizzi.&lt;br /&gt;per me, che non ho ancora deciso, se essere in programmatore prestato alla grafica o viceversa (o nessuno dei due :) ), WPF rappresenta un opportunità, oppurtunità di sviluppare applicazioni &amp;quot;differenti&amp;quot; interfacce alternative, non necessariamente migliori, ma non peggiori.&lt;br /&gt;tutta questa liberta però potrebbe portare ad aberrazioni stilistiche, applicazioni dalla trasparenze e rotondità spinte e inutili in poche parole UI incoerenti e non a caso secondo me sono già presenti &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD380553-911E-4659-A085-4DD58AE4B9AE&amp;amp;displaylang=en"&gt;delle linee guida&lt;/a&gt; .&lt;br /&gt;sfuttare tutte le nuove caratteristiche messe a disposizione da WPF (e non solo), per rendere l'esperienza dell'utente (infine è lui che ci paga) non solo più accattivante, ma più immersiva e intelligente è una sfida, che sottovalutata può portare a effetti indesiderati.&lt;br /&gt;possiamo sfruttare Avalon solo per rendere le applicazioni più gradevoli, con riflessi (dio come vanno di moda), ombre, icone colorate e ben definite. ma sarebbe un progresso? o solo un truccarsi prima si uscire il sabato sera? (non che io lo faccia personalmenrte :)).&lt;br /&gt;secondo me Avalon deve essere di più che realizzare datagrid degni di extreme makeover.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1249/Aspettarsi-Sviluppa-Avalon.aspx"&gt;&lt;em&gt;cosa aspettarsi da chi sviluppa con Avalon&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1249/Aspettarsi-Sviluppa-Avalon.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1249/Aspettarsi-Sviluppa-Avalon.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1249.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1249</trackback:ping></item><item><title>Routed Events</title><link>http://blogs.aspitalia.com/nostromo/post1213/Routed-Events.aspx</link><pubDate>Tue, 13 Sep 2005 16:53:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1213" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;mi ero promesso di studiare più a fondo Avalon, anche se ormai, dovremmo chiamarlo Microsoft Windows Presentation Foundation.&lt;br /&gt;nella pausa pranzo, ho controllato se c'erano articoli nuovi su msdn, in particolare per lo sviluppo su Vista.&lt;br /&gt;ho trovato un &lt;a href="http://msdn.microsoft.com/windowsvista/top10/"&gt;articolo&lt;/a&gt; relativamente nuovo, mi sono concentrato sull'argomento che conosco meno i Routed Events.&lt;br /&gt;la faccio breve, almeno commetto anche meno imprecisioni :).&lt;br /&gt;in una normale WinForm, tre bottoni necessitano di un riferimento esplicito ad un gestore d'evento, per poter intercettare il click.&lt;br /&gt;in avalon non è più così:&lt;/p&gt;&lt;p&gt;&amp;lt;Border Height=&amp;quot;50&amp;quot; Width=&amp;quot;300&amp;quot; BorderBrush=&amp;quot;Gray&amp;quot; BorderThickness=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;StackPanel Background=&amp;quot;LightGray&amp;quot; Orientation=&amp;quot;Horizontal&amp;quot; &lt;strong&gt;Button.Click=&amp;quot;CommonClickHandler&amp;quot;&lt;/strong&gt;&amp;gt;&lt;br /&gt;&amp;lt;Button Name=&amp;quot;YesButton&amp;quot;&amp;gt;Yes&amp;lt;/Button&amp;gt;&lt;br /&gt;&amp;lt;Button Name=&amp;quot;NoButton&amp;quot;&amp;gt;No&amp;lt;/Button&amp;gt;&lt;br /&gt;&amp;lt;Button Name=&amp;quot;CancelButton&amp;quot;&amp;gt;Cancel&amp;lt;/Button&amp;gt;&lt;br /&gt;&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;&amp;lt;/Border&amp;gt;&lt;br /&gt;&lt;br /&gt;usando i Routed Events, possiamo trarre vantaggio dal fatto che i bottoni contenuti all'iterno dello StackPanel &amp;quot;risponderanno&amp;quot; al click sul loro contenitore,&lt;br /&gt;in pratica l'evento scorre tutto l'albero dei controlli per poi risalirlo, la discesa prende il nome di Tunneling, e gli eventi hanno il prefisso Preview, la risalita Bubbling.&lt;br /&gt;&lt;br /&gt;devo approfondire la logica, ma meccanicamente è tutto molto intuitivo.&lt;br /&gt;&lt;br /&gt;p.s. nell'articolo si fa riferimento a molte sessione del PDC, sono convinto che Daniele e Ricciolo le seguiranno e &amp;quot;narreranno&amp;quot; per noi&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.0/" rel="tag"&gt;.NET Framework 3.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Windows_Presentation_Foundation/" rel="tag"&gt;Windows Presentation Foundation&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1213/Routed-Events.aspx"&gt;&lt;em&gt;Routed Events&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON, .NET Framework 3.0, Windows Presentation Foundation</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1213/Routed-Events.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1213/Routed-Events.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1213.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1213</trackback:ping></item><item><title>ma quante belle propiet&amp;#224;; che hai...per impostarti meglio... </title><link>http://blogs.aspitalia.com/nostromo/post1158/Belle-Propieta-Hai.per-Impostarti-Meglio.aspx</link><pubDate>Wed, 27 Jul 2005 16:27:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1158" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;refusi fiabeschi apparte, nella tarda sera di ieri, mi sono deciso a sviluppare, qualcosa di concreto con Avalon.&lt;br /&gt;Il primo problema che si è presentato è la realizzazione di un Control personalizzato, per fornire metodi e proprietà, che potessero facilitare, da classi esterne, l'aggiunta di pulsati ecc ecc.&lt;br /&gt;se fino ad adesso, eravamo abituati a vedere una proprietà &amp;quot;solo&amp;quot; come modo sicuro per accedere ad un campo privato, nascondendo la complessità del codice di validazione e altro, Avalon ne aggiunge due nuovi tipi:&lt;/p&gt;&lt;p&gt;Dependency Property&lt;/p&gt;&lt;p&gt;Attached Properties&lt;/p&gt;&lt;p&gt;ma facciamo un passo in dietro, ci sono diverse vie per impostare una proprietà&lt;/p&gt;&lt;p&gt;impostarla localmente:&lt;/p&gt;&lt;code&gt;&lt;p&gt;&amp;lt;Button Background=&amp;quot;red&amp;quot;/&amp;gt;&lt;/p&gt;&lt;/code&gt;&lt;p&gt;con il tag della proprietà&lt;/p&gt;&lt;code&gt;&lt;p&gt;&amp;lt;Button&amp;gt;&lt;br /&gt;&amp;lt;Button.Background&amp;gt;&lt;br /&gt;&amp;lt;HorizontalGradient StartColor=&amp;quot;Blue&amp;quot; EndColor=&amp;quot;White&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/Button.Background&amp;gt;&lt;br /&gt;&amp;lt;/Button&amp;gt;&lt;/p&gt;&lt;/code&gt;&lt;p&gt;Tramite altri tipi&lt;/p&gt;&lt;code&gt;&lt;p&gt;&amp;lt;CheckBox DockPanel.Dock=&amp;quot;Top&amp;quot;&amp;gt;Test&amp;lt;/CheckBox&amp;gt;&lt;/p&gt;&lt;/code&gt;&lt;p&gt;con il DataBind o attraverso le risorse (globali o locali)&lt;/p&gt;&lt;code&gt;&lt;p&gt;&amp;lt;DockPanel.Resources&amp;gt;&lt;br /&gt;&amp;lt;SolidColorBrush x:Key=&amp;quot;MyBrush&amp;quot; Color=&amp;quot;gold&amp;quot;/&amp;gt; &lt;br /&gt;&amp;lt;/DockPanel.Resources&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;Text Foreground=&amp;quot;{StaticResource MyBrush}&amp;quot; TextContent=&amp;quot;Text&amp;quot; /&amp;gt;&lt;/p&gt;&lt;/code&gt;&lt;p&gt;tramite la classe Style, e non dimentichiamo la possibilità di animarle.&lt;/p&gt;&lt;p&gt;tutto questo è reso possibile dal &amp;quot;sistema delle proprietà&amp;quot;; che Avalon mette a disposizione.&lt;br /&gt;possiamo trarre vantaggio da questa infrastruttura:&lt;br /&gt;- &amp;quot;estendendo&amp;quot; una proprietà con una Dependency Property per fornire servizi di Stylig o DataBinding, &lt;br /&gt;- dichiarando una proprietà in una classe, per utilizzarla su altri tipi (Attached Properties), il panel le usa per impostare il layout dei propri figli.&lt;/p&gt;&lt;p&gt;Dependency Property&lt;/p&gt;&lt;p&gt;per creare una Dependency Property, è necessario registrarla nel sistema di dipendenze di Avalon, tramite il metodo DependencyProperty.Register.&lt;br /&gt;le Dependency Property possono essere utilizzate solo dai tipi che ereditano da DependencyObject.&lt;br /&gt;Quando una propietà deve supportare gli Styles, DataBinding, Animazioni, Ereditarietà, Invalidazione e Valori di Default è qua che ci dobbiamo rivolgere &lt;/p&gt;&lt;p&gt;Attached Propeties&lt;/p&gt;&lt;p&gt;Come dicevo, in alcuni casi può essere utile, dichiarare una proprietà, che poi verrà usata su alri tipi.&lt;br /&gt;Queste proprietà vengono chiamate Attached Propertie e devono essere registate tramite il metodo DependencyProperty.RegisterAttached.&lt;br /&gt;è possibile utilizzarle su ogni oggetto derivato da DependencyObject ( e sono molti ).&lt;/p&gt;&lt;p&gt;un esempio di Attached Properties è DockPanel.Dock, questa proprietà è stata creata per essere utilizzata su gli oggetti contenuti nel DockPanel al fine di impostarne il Lyaout.&lt;/p&gt;&lt;code&gt;&lt;p&gt;&amp;lt;CheckBox DockPanel.Dock=&amp;quot;Top&amp;quot;&amp;gt;Test&amp;lt;/CheckBox&amp;gt;&lt;/p&gt;&lt;p&gt;DockPanel.SetDock(myCheckbox, Dock.Top);&lt;/p&gt;&lt;/code&gt;&lt;p&gt;in genere ricorreremo alle Attached Propeties per impostare il Layout degli elementi figli rispetto al padre&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1158/Belle-Propieta-Hai.per-Impostarti-Meglio.aspx"&gt;&lt;em&gt;ma quante belle propiet&amp;#224;; che hai...per impostarti meglio... &lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1158/Belle-Propieta-Hai.per-Impostarti-Meglio.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1158/Belle-Propieta-Hai.per-Impostarti-Meglio.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1158.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1158</trackback:ping></item><item><title>non si vive di soli rettangoli</title><link>http://blogs.aspitalia.com/nostromo/post1150/Vive-Soli-Rettangoli.aspx</link><pubDate>Thu, 21 Jul 2005 12:54:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1150" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;La stanchezza si fa sentire, ho un pò rallentato l'esplorazioni delle doti multimediali di Avalon, anche perche voglio defire un obbiettivo e poi lavorare per raggiungelo.&lt;br /&gt;Ieri sera stanco e assonnato, mi sono dedicato a qualcosa di più soft, accanotante le forme &amp;quot;primitive&amp;quot; di sono dedicato alla, ben più interessante (per me) classe path:&lt;br /&gt;Un Path è un insieme connessio di linee o, curve (Bezier o meno ).&lt;br /&gt;Tante sintassi per un unico obbiettivo:&lt;br /&gt;&lt;code&gt;&amp;lt;!--sintassi estesa--&amp;gt;&lt;br /&gt;&amp;lt;Path Stroke=&amp;quot;Black&amp;quot; StrokeThickness=&amp;quot;1&amp;quot; Fill=&amp;quot;{StaticResource MyBush}&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Path.Data&amp;gt;&lt;br /&gt;&amp;lt;PathGeometry&amp;gt;&lt;br /&gt;&amp;lt;PathGeometry.Figures&amp;gt;&lt;br /&gt;&amp;lt;PathFigureCollection&amp;gt;&lt;br /&gt;&amp;lt;PathFigure&amp;gt;&lt;br /&gt;&amp;lt;PathFigure.Segments&amp;gt;&lt;br /&gt;&amp;lt;PathSegmentCollection&amp;gt;&lt;br /&gt;&amp;lt;StartSegment Point=&amp;quot;10,100&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;LineSegment Point=&amp;quot;100,100&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;LineSegment Point=&amp;quot;100,50&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;CloseSegment /&amp;gt;&lt;br /&gt;&amp;lt;/PathSegmentCollection&amp;gt;&lt;br /&gt;&amp;lt;/PathFigure.Segments&amp;gt;&lt;br /&gt;&amp;lt;/PathFigure&amp;gt;&lt;br /&gt;&amp;lt;/PathFigureCollection&amp;gt;&lt;br /&gt;&amp;lt;/PathGeometry.Figures&amp;gt;&lt;br /&gt;&amp;lt;/PathGeometry&amp;gt;&lt;br /&gt;&amp;lt;/Path.Data&amp;gt;&lt;br /&gt;&amp;lt;/Path&amp;gt;&lt;br /&gt;&amp;lt;!--sintassi abbreviata--&amp;gt;&lt;br /&gt;&amp;lt;Path Stroke=&amp;quot;Black&amp;quot; StrokeThickness=&amp;quot;1&amp;quot; Data=&amp;quot;m 10,200 l 90,0 l 0,-50 z&amp;quot; Fill=&amp;quot;{StaticResource MyBush}&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;!--sintassi abbreviata 2--&amp;gt;&lt;br /&gt;&amp;lt;Path Stroke=&amp;quot;Black&amp;quot; StrokeThickness=&amp;quot;1&amp;quot; Data=&amp;quot;m 10,300 h 90 v -50 z&amp;quot; Fill=&amp;quot;{StaticResource MyBush}&amp;quot;/&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;img src="http://lab.aspitalia.com/nostromo/webcontrol/v2/path.jpg" /&gt; &lt;br /&gt;&lt;br /&gt;Qaundo si disegna un Path, le cose da specificare possono essere molte, per questo è a disposizione una sintassi abbreviata:&lt;br /&gt;&lt;br /&gt;con m o M (non viene fatta distinzione) si specifica il prossimo punto da quale iniziare a disegnare,&lt;br /&gt;con l o L disegniamo una linea, le coordiante sono relativa all'ultimo punto.&lt;br /&gt;con z il chiudiamo il tracciato con una linea nella posizione attuale, al primo punto disegnato.&lt;br /&gt;nel tezo esempio la sintassi è ulteriormente abbreviata, utilizzando H e V, che disegnano, rispettivamente, una linea orizzontale e una verticale.&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1150/Vive-Soli-Rettangoli.aspx"&gt;&lt;em&gt;non si vive di soli rettangoli&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1150/Vive-Soli-Rettangoli.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1150/Vive-Soli-Rettangoli.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1150.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1150</trackback:ping></item><item><title>Avalon , Risorse e Stile</title><link>http://blogs.aspitalia.com/nostromo/post1147/Avalon--Risorse-Stile.aspx</link><pubDate>Tue, 19 Jul 2005 13:09:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1147" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Abbiamo visto che disegnare, non è difficile, perlomeno con forme semplici e pochi oggetti.&lt;br /&gt;Ma cosa accade se dobbiamo creare più forme, magari con propietà simili?.&lt;br /&gt;A questo scopo Avalon mette a disposizione le risorse e gli stili.&lt;br /&gt;Gli stili di avalon, volendo fare un paragone, possono essere assimilati hai css, ma da questi, prendono solo la caratteristica di impostere l'aspetto.&lt;br /&gt;Per creare uno Style lo dichiareremo nell'elemento Resources, la proprietà Resources è ereditata dalla classe FrameworkElement, permettendoci di creare risorse locali per i vari elementi del framevork&lt;br /&gt;Gli Style vengono dichiarati da un insieme di Setter, responsabili di impostare il valore di una proprietà.&lt;br /&gt;Per riutilizzare l'aspetto della finta scatola:&lt;/p&gt;&lt;code&gt;&lt;p&gt;&amp;lt;Grid.Resources&amp;gt;&lt;br /&gt;&amp;lt;Style x:Key=&amp;quot;Style1&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Setter Property=&amp;quot;Shape.Width&amp;quot; Value=&amp;quot;280&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;Setter Property=&amp;quot;Shape.Height&amp;quot; Value=&amp;quot;360&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;Setter Property=&amp;quot;Shape.Stroke&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Setter.Value&amp;gt;&lt;br /&gt;&amp;lt;SolidColorBrush Color=&amp;quot;White&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Setter.Value&amp;gt;&lt;br /&gt;&amp;lt;/Setter&amp;gt;&lt;br /&gt;&amp;lt;Setter Property=&amp;quot;Shape.StrokeThickness&amp;quot; Value=&amp;quot;2&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;Setter Property=&amp;quot;Shape.RenderTransform&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Setter.Value&amp;gt;&lt;br /&gt;&amp;lt;TransformGroup&amp;gt;&lt;br /&gt;&amp;lt;SkewTransform Center=&amp;quot;0,0&amp;quot; AngleY=&amp;quot;-15&amp;quot; AngleX=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;ScaleTransform Center=&amp;quot;0,0&amp;quot; ScaleX=&amp;quot;0.7&amp;quot; ScaleY=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/TransformGroup&amp;gt;&lt;br /&gt;&amp;lt;/Setter.Value&amp;gt;&lt;br /&gt;&amp;lt;/Setter&amp;gt;&lt;br /&gt;&amp;lt;/Style&amp;gt;&lt;br /&gt;&amp;lt;/Grid.Resources&amp;gt;&lt;/p&gt;&lt;/code&gt;&lt;p&gt;Modifichiamo infine il codice di ieri&lt;/p&gt;&lt;p&gt;&lt;code&gt;&amp;lt;Rectangle Name=&amp;quot;Rectangle&amp;quot; Canvas.Left=&amp;quot;35&amp;quot; Style=&amp;quot;{StaticResource Style1}&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Rectangle.Fill&amp;gt;&lt;br /&gt;&amp;lt;ImageBrush ImageSource=&amp;quot;immagini\doom.jpg&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle.Fill&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;Rectangle Name=&amp;quot;Rectangle2&amp;quot; Canvas.Left=&amp;quot;250&amp;quot; Style=&amp;quot;{StaticResource Style1}&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Rectangle.Fill&amp;gt;&lt;br /&gt;&amp;lt;ImageBrush ImageSource=&amp;quot;immagini\jade.jpg&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle.Fill&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle&amp;gt; &lt;br /&gt;&lt;br /&gt;&lt;/code&gt;la sola proprietà rimasta da impostare è il riempimento, diverso, naturalmente per ogni &amp;quot;scatola&amp;quot;.&lt;br /&gt;&lt;img src="http://lab.aspitalia.com/nostromo/webcontrol/v2/jade.jpg" /&gt; &lt;br /&gt;adesso non mi rimane che riorganizzare un pò il tutto, per far si che anche la seconda scatola ri &amp;quot;rifletta&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1147/Avalon--Risorse-Stile.aspx"&gt;&lt;em&gt;Avalon , Risorse e Stile&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1147/Avalon--Risorse-Stile.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1147/Avalon--Risorse-Stile.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1147.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1147</trackback:ping></item><item><title>Avalon Extreme Makeover </title><link>http://blogs.aspitalia.com/nostromo/post1145/Avalon-Extreme-Makeover.aspx</link><pubDate>Mon, 18 Jul 2005 12:57:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1145" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;c'eravamo lasciati con un poco attraente quadrato ruotante.&lt;br /&gt;Fare meglio era più facile.&lt;br /&gt;Riprendendo in mano l';esempio della scorsa settimana, ho deciso per adesso di accantonare ( solo per oggi ), Timeline e Trigger, per dedicarmi un attimo al &amp;quot;look&amp;quot;.&lt;br /&gt;Creiamo un Canvans, utile per posizionare gli elementi relativamente alla sua area.&lt;br /&gt;All'interno aggiungiamo un elisse, che andrà a creare l'illusione di un ombra, sotto l'ex rettangolo rosso.&lt;br /&gt;&lt;code&gt;&amp;lt;!--ombra--&amp;gt;&lt;br /&gt;&amp;lt;Ellipse RadiusX=&amp;quot;150&amp;quot; RadiusY=&amp;quot;30&amp;quot; Canvas.Top=&amp;quot;350&amp;quot; Canvas.Left=&amp;quot;-5&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Ellipse.OpacityMask&amp;gt;&lt;br /&gt;&amp;lt;RadialGradientBrush GradientOrigin=&amp;quot;0.5,0.5&amp;quot; Center=&amp;quot;0,0&amp;quot; RadiusX=&amp;quot;4&amp;quot; RadiusY=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;RadialGradientBrush.GradientStops&amp;gt;&lt;br /&gt;&amp;lt;GradientStop Color=&amp;quot;Black&amp;quot; Offset=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;GradientStop Color=&amp;quot;transparent&amp;quot; Offset=&amp;quot;0.10&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;GradientStop Color=&amp;quot;transparent&amp;quot; Offset=&amp;quot;0.12&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/RadialGradientBrush.GradientStops&amp;gt;&lt;br /&gt;&amp;lt;/RadialGradientBrush&amp;gt;&lt;br /&gt;&amp;lt;/Ellipse.OpacityMask&amp;gt;&lt;br /&gt;&amp;lt;Ellipse.Fill&amp;gt;&lt;br /&gt;&amp;lt;SolidColorBrush Color=&amp;quot;Black&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Ellipse.Fill&amp;gt;&lt;br /&gt;&amp;lt;Ellipse.RenderTransform&amp;gt;&lt;br /&gt;&amp;lt;TransformGroup&amp;gt;&lt;br /&gt;&amp;lt;SkewTransform Center=&amp;quot;0,0&amp;quot; AngleY=&amp;quot;-20&amp;quot; AngleX=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/TransformGroup&amp;gt;&lt;br /&gt;&amp;lt;/Ellipse.RenderTransform&amp;gt;&lt;br /&gt;&amp;lt;/Ellipse&amp;gt;&lt;br /&gt;&lt;/code&gt;Utilizziamo OpacityMask, per rendere più morbidi e trasparenti i bordi dell'ombra, applichiamo SkewTransform, per dare l'illusione, di un ombra proiettata su un piano 3D.&lt;br /&gt;Sopra la finata ombra il nostro rettangolo rosso cambia così:&lt;br /&gt;&lt;code&gt;&amp;lt;!--scatola--&amp;gt;&lt;br /&gt;&amp;lt;Rectangle Width=&amp;quot;280&amp;quot; Height=&amp;quot;360&amp;quot; Name=&amp;quot;myAnimatedRectangle&amp;quot; StrokeThickness=&amp;quot;2&amp;quot; Canvas.Left=&amp;quot;35&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Rectangle.Fill&amp;gt;&lt;br /&gt;&amp;lt;ImageBrush ImageSource=&amp;quot;immagini\doom.jpg&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle.Fill&amp;gt;&lt;br /&gt;&amp;lt;Rectangle.Stroke&amp;gt;&lt;br /&gt;&amp;lt;SolidColorBrush Color=&amp;quot;White&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle.Stroke&amp;gt;&lt;br /&gt;&amp;lt;Rectangle.RenderTransform&amp;gt;&lt;br /&gt;&amp;lt;TransformGroup&amp;gt;&lt;br /&gt;&amp;lt;SkewTransform Center=&amp;quot;0,0&amp;quot; AngleY=&amp;quot;-15&amp;quot; AngleX=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;ScaleTransform Center=&amp;quot;0,0&amp;quot; ScaleX=&amp;quot;0.7&amp;quot; ScaleY=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/TransformGroup&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle.RenderTransform&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle&amp;gt;&lt;br /&gt;&lt;/code&gt;Cambiate le dimensione, il tipo di riempimento, aggiunte un paio di trasformazioni ed infine aggiunto un sottile bordo bianco, per staccare l'elemento dallo sfondo.&lt;br /&gt;Fin qua nulla che già non si potesse fare, con qualsiasi altro sistema ( SVG, Flash ecc ecc) , posizioniamo un ulteriore rettangolo, all';incirca subito dopo il &amp;quot;myAnimatedRectangle&amp;quot; .&lt;br /&gt;In questa forma, simuleremo la riflessione, attraverso un VisualBrush&lt;br /&gt;&lt;code&gt;&amp;lt;!--riflesso--&amp;gt;&lt;br /&gt;&amp;lt;Rectangle Width=&amp;quot;400&amp;quot; Height=&amp;quot;400&amp;quot; Name=&amp;quot;Riflessione&amp;quot; Canvas.Top=&amp;quot;450&amp;quot; RenderTransform=&amp;quot;scale -1 -1 translate 490 320&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Rectangle.Fill&amp;gt;&lt;br /&gt;&amp;lt;VisualBrush ViewboxUnits=&amp;quot;Absolute&amp;quot; Viewbox=&amp;quot;0,0,400,480&amp;quot; ViewportUnits=&amp;quot;RelativeToBoundingBox&amp;quot; Viewport=&amp;quot;0,0,1,1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle.Fill&amp;gt;&lt;br /&gt;&amp;lt;Rectangle.OpacityMask&amp;gt;&lt;br /&gt;&amp;lt;LinearGradientBrush StartPoint=&amp;quot;0,0&amp;quot; EndPoint=&amp;quot;0,1&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;LinearGradientBrush.Transform&amp;gt;&lt;br /&gt;&amp;lt;SkewTransform Center=&amp;quot;0,0&amp;quot; AngleY=&amp;quot;-15&amp;quot; AngleX=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/LinearGradientBrush.Transform&amp;gt;&lt;br /&gt;&amp;lt;LinearGradientBrush.GradientStops&amp;gt;&lt;br /&gt;&amp;lt;GradientStop Color=&amp;quot;transparent&amp;quot; Offset=&amp;quot;0.25&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;GradientStop Color=&amp;quot;Black&amp;quot; Offset=&amp;quot;0.55&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;GradientStop Color=&amp;quot;transparent&amp;quot; Offset=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/LinearGradientBrush.GradientStops&amp;gt;&lt;br /&gt;&amp;lt;/LinearGradientBrush &amp;gt;&lt;br /&gt;&amp;lt;/Rectangle.OpacityMask&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle&amp;gt;&lt;br /&gt;&lt;/code&gt;al finto riflesso è applicata inoltre un? OpacityMask, per simulare il comportamento di alcuni materiali, che in genere hanno uno o più punti d'attenuazione (molto dipende da quanto il materiale è liscio).&lt;br /&gt;per finire è necessario aggiunge due righe di C# nel costruttore della finestra:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;VisualBrush vs = (VisualBrush)this.Riflessione.Fill;&lt;br /&gt;vs.Visual = this.itemCanvas; &lt;/p&gt;&lt;p&gt;i VisualBrush in 3 parole: sono una figata :), dentro può andare qualsiasi cosa erediti da Visual, in pratica ogni elemento del Framework.&lt;/p&gt;&lt;p&gt;&lt;img src="http://lab.aspitalia.com/nostromo/webcontrol/v2/avalondoom.jpg" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1145/Avalon-Extreme-Makeover.aspx"&gt;&lt;em&gt;Avalon Extreme Makeover &lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1145/Avalon-Extreme-Makeover.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1145/Avalon-Extreme-Makeover.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1145.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1145</trackback:ping></item><item><title>Le sere con Avalon</title><link>http://blogs.aspitalia.com/nostromo/post1144/Sere-Avalon.aspx</link><pubDate>Fri, 15 Jul 2005 14:52:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1144" border="0" style="width:1px; height:1px;" /&gt;è da un pezzetto, che avevo installato Avalon, (WinFX SDK).&lt;br /&gt;Per l'occasione ricordo di aver formattato il pc.&lt;br /&gt;Solo in questi giorni, lo sto utilizzando &amp;quot;seriamente&amp;quot;, complice l'avvicinarsi delle vacanze, lavori poco stimolanti, turni serali della mia ragazza e non ultima, la frustrazione di prendere ogni sera, sonore legnate, giocando Live ad Halo 2 .&lt;br /&gt;Non so se Avalon è una rivoluzione, di sicuro è una soluzione.&lt;br /&gt;Per rendere più &amp;quot;accattivanti&amp;quot; le nostre applicazioni, le abbiamo provate di tutte.&lt;br /&gt;Flash e Director per citare i sistemi si Authoring più famosi.&lt;br /&gt;Chi usa i prodotti Macromedia (oggi corpo unico con Adobe) , ne conosce pregi e difetti.&lt;br /&gt;Macromedia ha tentato con Director di portare il 3D si internet, con scarsi risulati, mentre con Flash si è, conquistata sul campo il giusto successo.&lt;br /&gt;Passiamo dalle parole hai fatti:&lt;br /&gt;&lt;code&gt;&amp;lt;Window x:Class=&amp;quot;AvalonApplication2.Window1&amp;quot;&lt;br /&gt;xmlns=&amp;quot;http://schemas.microsoft.com/winfx/avalon/2005&amp;quot;&lt;br /&gt;xmlns:x=&amp;quot;http://schemas.microsoft.com/winfx/xaml/2005&amp;quot;&lt;br /&gt;Text=&amp;quot;AvalonApplication2&amp;quot;&lt;br /&gt;&amp;gt;&lt;br /&gt;&amp;lt;Grid DockPanel.Dock=&amp;quot;Top&amp;quot; &amp;gt;&lt;br /&gt;&amp;lt;Grid.Background&amp;gt;&lt;br /&gt;&amp;lt;LinearGradientBrush StartPoint=&amp;quot;0,0&amp;quot; EndPoint=&amp;quot;0,1&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;LinearGradientBrush.GradientStops&amp;gt;&lt;br /&gt;&amp;lt;GradientStop Color=&amp;quot;Blue&amp;quot; Offset=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;GradientStop Color=&amp;quot;#333399&amp;quot; Offset=&amp;quot;0.50&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;GradientStop Color=&amp;quot;#006699&amp;quot; Offset=&amp;quot;0.72&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;GradientStop Color=&amp;quot;#000066&amp;quot; Offset=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/LinearGradientBrush.GradientStops&amp;gt;&lt;br /&gt;&amp;lt;/LinearGradientBrush&amp;gt;&lt;br /&gt;&amp;lt;/Grid.Background&amp;gt;&lt;br /&gt;&amp;lt;StackPanel Margin=&amp;quot;30&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Canvas Name=&amp;quot;maniCanvas&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Rectangle Width=&amp;quot;120&amp;quot; Height=&amp;quot;120&amp;quot; Name=&amp;quot;myAnimatedRectangle&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Rectangle.Fill&amp;gt;&lt;br /&gt;&amp;lt;SolidColorBrush Color=&amp;quot;Red&amp;quot;&amp;gt;&amp;lt;/SolidColorBrush&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle.Fill&amp;gt;&lt;br /&gt;&amp;lt;Rectangle.RenderTransform&amp;gt;&lt;br /&gt;&amp;lt;RotateTransform Angle=&amp;quot;0&amp;quot; Center=&amp;quot;60,60&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/Rectangle.RenderTransform&amp;gt; &lt;p&gt;&amp;lt;/Rectangle&amp;gt;&lt;br /&gt;&amp;lt;/Canvas&amp;gt;&lt;br /&gt;&amp;lt;StackPanel Orientation=&amp;quot;Horizontal&amp;quot; Margin=&amp;quot;0,140,0,60&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Button Name=&amp;quot;restartButton&amp;quot;&amp;gt;Restart&amp;lt;/Button&amp;gt;&lt;br /&gt;&amp;lt;Button Name=&amp;quot;pauseButton&amp;quot;&amp;gt;Pause&amp;lt;/Button&amp;gt;&lt;br /&gt;&amp;lt;Button Name=&amp;quot;resumeButton&amp;quot;&amp;gt;Resume&amp;lt;/Button&amp;gt;&lt;br /&gt;&amp;lt;Button Name=&amp;quot;stopButton&amp;quot;&amp;gt;Stop&amp;lt;/Button&amp;gt;&lt;br /&gt;&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;&amp;lt;/StackPanel&amp;gt;&lt;br /&gt;&amp;lt;/Grid&amp;gt;&lt;br /&gt;&amp;lt;Window.Storyboards&amp;gt;&lt;br /&gt;&amp;lt;ParallelTimeline Name=&amp;quot;myParallelTimeline&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;SetterTimeline TargetName=&amp;quot;myAnimatedRectangle&amp;quot; Path=&amp;quot;(Rectangle.Opacity)&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;DoubleAnimation From=&amp;quot;1&amp;quot; To=&amp;quot;0&amp;quot; Duration=&amp;quot;0:0:5&amp;quot; AutoReverse=&amp;quot;True&amp;quot; RepeatBehavior=&amp;quot;Forever&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/SetterTimeline&amp;gt;&lt;br /&gt;&amp;lt;/ParallelTimeline&amp;gt;&lt;br /&gt;&amp;lt;SetterTimeline TargetName=&amp;quot;myAnimatedRectangle&amp;quot; &lt;br /&gt;Path=&amp;quot;(Rectangle.RenderTransform).(RotateTransform.Angle)&amp;quot; Name=&amp;quot;mySetter&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;DoubleAnimation From=&amp;quot;0&amp;quot; To=&amp;quot;360&amp;quot; RepeatBehavior=&amp;quot;Forever&amp;quot; AutoReverse=&amp;quot;True&amp;quot; Duration=&amp;quot;0:0:1&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/SetterTimeline&amp;gt;&lt;br /&gt;&amp;lt;/Window.Storyboards&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;Window.Triggers&amp;gt;&lt;br /&gt;&amp;lt;EventTrigger RoutedEvent=&amp;quot;Button.Click&amp;quot; SourceName=&amp;quot;restartButton&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;EventTrigger.Actions&amp;gt;&lt;br /&gt;&amp;lt;BeginAction TargetName=&amp;quot;myParallelTimeline&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/EventTrigger.Actions&amp;gt;&lt;br /&gt;&amp;lt;/EventTrigger&amp;gt;&lt;br /&gt;&amp;lt;EventTrigger RoutedEvent=&amp;quot;ButtonBase.Click&amp;quot; SourceName=&amp;quot;pauseButton&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;EventTrigger.Actions&amp;gt;&lt;br /&gt;&amp;lt;PauseAction TargetName=&amp;quot;myParallelTimeline&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/EventTrigger.Actions&amp;gt;&lt;br /&gt;&amp;lt;/EventTrigger&amp;gt;&lt;br /&gt;&amp;lt;EventTrigger RoutedEvent=&amp;quot;ButtonBase.Click&amp;quot; SourceName=&amp;quot;resumeButton&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;EventTrigger.Actions&amp;gt;&lt;br /&gt;&amp;lt;ResumeAction TargetName=&amp;quot;myParallelTimeline&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/EventTrigger.Actions&amp;gt;&lt;br /&gt;&amp;lt;/EventTrigger&amp;gt;&lt;br /&gt;&amp;lt;EventTrigger RoutedEvent=&amp;quot;ButtonBase.Click&amp;quot; SourceName=&amp;quot;stopButton&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;EventTrigger.Actions&amp;gt;&lt;br /&gt;&amp;lt;StopAction TargetName=&amp;quot;myParallelTimeline&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/EventTrigger.Actions&amp;gt;&lt;br /&gt;&amp;lt;/EventTrigger&amp;gt;&lt;br /&gt;&amp;lt;/Window.Triggers&amp;gt;&lt;br /&gt;&amp;lt;/Window&amp;gt;&lt;/p&gt;&lt;/code&gt;come lascia intuire il nome, LinearGradientBrush è riempimento lineare, le proprietà StartPoint ed EndPoint sono rispettinavamente le coordinate x e y ,dell?inizio del riempimento e la fine, ad esempio, specificando come EndPoint 1,1 otterremo un riempimento con andamento diagonale. Con GradientStops, specifichiamo l?offesset dove il riempimento cambia colore. Abbaimo poi un rettangolo, ed una serie di bottoni. ho tagliato corto perché la parte interessante sono lo Storyboards e i Triggers. In modo sintetico eortodosso lo Storyboards è un contenitore di Timeline, le fondamenta per dare vita a qualsiasi elemento del Framework. Nell?esempio le Timeline animano due proprietà del rettangolo, la rotazione e l?opacità, per farlo uso un DoubleAnimation , perche lo proprietà su cui operiamo restituisco dei double. Tramite la proprietà Path di SetterTimeline, specifichiamo la l?oggetto e la proprietà da animare. Con i Triggers controlliamo, l?animazione, possiamo metterla in pausa, riavviarlo stopparla ecc ecc. Alla fine il risultato: &lt;br /&gt;&lt;img src="http://lab.aspitalia.com/nostromo/webcontrol/v2/av-1.jpg" /&gt;&lt;br /&gt;naturalmente non posso farvi vedere l?animazione ma immaginatevi il quadrato che ruota e diventa trasparete . purtroppo devo fermermi non ho il tempo per scrivere altro, ormai ho preso il blog come la pausa prima di lavorare . &lt;br /&gt;&lt;br /&gt;p.s. chiedo scusa per la confusione durante la correzione del post&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post1144/Sere-Avalon.aspx"&gt;&lt;em&gt;Le sere con Avalon&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post1144/Sere-Avalon.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post1144/Sere-Avalon.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS1144.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=1144</trackback:ping></item><item><title>PropertyTriggers (link)</title><link>http://blogs.aspitalia.com/nostromo/post895/PropertyTriggers-Link.aspx</link><pubDate>Tue, 08 Feb 2005 13:54:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=895" border="0" style="width:1px; height:1px;" /&gt;esauriti momentaneamente i concetti 3D base di Avalon, vi segnalo un &lt;a href="http://www.joemarini.com/tutorials/tutorialpages/xamlpropertytriggers.php"&gt;link&lt;/a&gt; che illustra come interagire con gli oggetti senza il bisogno di utilizzare codice, ma utilizzando la sintassi XAML. vi lascio in campagnia dei PropertyTriggers &lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post895/PropertyTriggers-Link.aspx"&gt;&lt;em&gt;PropertyTriggers (link)&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post895/PropertyTriggers-Link.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post895/PropertyTriggers-Link.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS895.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=895</trackback:ping></item><item><title>texture parte seconda</title><link>http://blogs.aspitalia.com/nostromo/post891/Texture-Parte.aspx</link><pubDate>Fri, 04 Feb 2005 14:07:00 GMT</pubDate><description>&lt;img src="http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=891" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;&lt;a href="http://blogs.aspitalia.com/nostromo/post886.aspx"&gt;ieri&lt;/a&gt; ho iniziato a parlare a grandi linee delle Texture e delle coordinate necessarie per applicarle correttamente.&lt;br /&gt;ritornando a casa, ho avuto modo di rivedere il codice che avevo preparato per l'esempio, e renderelo più facile da capire e più facile da spiegare per me. &lt;br /&gt;per Texture intendo un immagine, opportunamente ripetuta ed affiancata, al fine di ricoprire e conferire così alla geometria &amp;quot;nuda&amp;quot; un look più realistico ed accattivante.&lt;br /&gt;per gli esempi utilizzeremo una semplice textute, con un griglia con lo 0.0 nell'origine del sistema di coordinate GDI.&lt;br /&gt;&lt;img src="http://www.keww.altervista.org/griglia.gif" /&gt;&lt;br /&gt;e una semplice geometria di cui ho evidenziato le coordinate dei vertici e il contorno, l'asse verde rappresenta le coordinate positive X, quello rosso la Y e quello nero la Z&lt;br /&gt;&lt;img src="http://www.keww.altervista.org/geom.gif" /&gt;&lt;br /&gt;imposteremo la proprietà TextureCoordinates=&amp;quot;0,0 1,0 1,1 0,1&amp;quot; corrispondenti ad una coppia di coordinate U V (una per ogni vertice), con valori compresi tra 0 e 1, valori inferiori o maggiori portano alla creazioni da particolari effetti tutti da sperimentare :).&lt;br /&gt;&lt;img src="http://www.keww.altervista.org/bit.gif" /&gt; &lt;br /&gt;nel disegno, ho leggermente scostato la Bitmap per rendere più chiaro, che attribuendo al vertice A le coordinate UV pari a 0,0 faremo coincidere l'origine del sistema di coordinate GDI in quel punto, in senzo orario (importante) attribuiamo le coordinate hai rimaneti vertici B 1,0 C 1,1 e D 0,1&lt;br /&gt;il codice XAML completo è il seguente:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;GeometryModel3D&amp;gt;&lt;br /&gt;&amp;lt;GeometryModel3D.Material&amp;gt;&lt;br /&gt;&amp;lt;BrushMaterial&amp;gt;&lt;br /&gt;&amp;lt;BrushMaterial.Brush&amp;gt;&lt;br /&gt;&amp;lt;ImageBrush&lt;br /&gt;Viewport=&amp;quot;0,0,0.5,1&amp;quot;&lt;br /&gt;ViewportUnits=&amp;quot;Absolute&amp;quot;&lt;br /&gt;TileMode=&amp;quot;None&amp;quot;&lt;br /&gt;HorizontalAlignment=&amp;quot;Left&amp;quot;&lt;br /&gt;VerticalAlignment=&amp;quot;Top&amp;quot;&lt;br /&gt;ImageSource=&amp;quot;griglia.gif&amp;quot;&amp;gt; &lt;br /&gt;&amp;lt;/ImageBrush&amp;gt;&lt;br /&gt;&amp;lt;/BrushMaterial.Brush&amp;gt;&lt;br /&gt;&amp;lt;/BrushMaterial&amp;gt;&lt;br /&gt;&amp;lt;/GeometryModel3D.Material&amp;gt;&lt;br /&gt;&amp;lt;GeometryModel3D.Geometry&amp;gt;&lt;br /&gt;&amp;lt;MeshGeometry3D &lt;br /&gt;Positions=&amp;quot;0.5,0,0.5 3,0,0.5 3,0,2 0.5,0,2&amp;quot; &lt;br /&gt;Normals=&amp;quot;0,1,0 0,1,0 0,1,0 0,1,0 &amp;quot; &lt;br /&gt;TriangleIndices=&amp;quot;0 1 2 2 3 0 &amp;quot; &lt;br /&gt;TextureCoordinates=&amp;quot;0,0 1,0 1,1 0,1&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/GeometryModel3D.Geometry&amp;gt;&lt;br /&gt;&amp;lt;/GeometryModel3D&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;ecco il risultato:&lt;br /&gt;&lt;img src="http://www.keww.altervista.org/notile.gif" /&gt;&lt;br /&gt;nel pennello abbiamo impostato la proprietà TileMode a None, evitanto così che la bitmap fosse ripetuta per comprire l'intera superficie della geometria, cambiando valore della proprietà (un enumeratore) e impostando valori differenti per Viewpor (la dimensione del Tile rispetto al &amp;quot;contenitore&amp;quot;):&lt;br /&gt;&lt;br /&gt;Viewport=&amp;quot;0,0,0.5,1&amp;quot;&lt;br /&gt;ViewportUnits=&amp;quot;Absolute&amp;quot;&lt;br /&gt;&lt;strong&gt;TileMode=&amp;quot;Tile&amp;quot; &lt;/strong&gt;&lt;br /&gt;&lt;img src="http://www.keww.altervista.org/tile.gif" /&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Viewport=&amp;quot;0,0,0.5,0.5&amp;quot;&lt;/strong&gt;&lt;br /&gt;ViewportUnits=&amp;quot;Absolute&amp;quot;&lt;br /&gt;TileMode=&amp;quot;Tile&amp;quot; &lt;br /&gt;&lt;img src="http://www.keww.altervista.org/setviewport.gif" /&gt; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="http://blogs.aspitalia.com/nostromo/post891/Texture-Parte.aspx"&gt;&lt;em&gt;texture parte seconda&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2012 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>AVALON</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post891/Texture-Parte.aspx</guid><slash:comments>0</slash:comments><wfw:comment>http://blogs.aspitalia.com/nostromo/post891/Texture-Parte.aspx#feedback</wfw:comment><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS891.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=891</trackback:ping></item></channel></rss>
