WPF attached properties + extension methods

Cristian Civera

di Cristian Civera, in WPF, domenica 10 giugno 2007 ore 22.12

Lo so che vi sono mancato, è un po' che non scrivo, ma sono ancora vivo. Ovviamente sto seguendo i prossimi .NET Framework 3.5, SilverLight e continuo a lavorare con WPF.

A proposito delle novità di C# 3.0 e VB 9.0, mi è venuto in mente questo weekend che durante MVP Summit di Seattle, parlando con Raff, ci era venuta in mente l'idea di utilizzare gli extension methods in WPF. Lo scopo è quello di avere un aiuto sia dal punto di vista dell'ambiente che del linguaggio di programmazione, per utilizzare le attached properties. Sono quelle proprietà "esterne" che si impostano con i metodi Set*** e Get*** e sono numerevoli.

Mi sono fatto quindi un generatore che prende tutte le attached properties e crea delle classi wrapper con metodi di tipo attached. Quindi per esempio:

public static class CanvasExtensions {         
    public static void SetCanvasLeft(this UIElement element, double length) { 
        System.Windows.Controls.Canvas.SetLeft(element, length); 
    } 
}

E' un metodo per impostare la posizione a sinistra di un UIElement contenuto in un Canvas. Il suo utilizzo è abbastanza semplice e abbiamo supporto all'intellisense:

Ho creato anche dei wrapper per VisualTreeHelper e LogicalTreeHelper. Trovate tutto qua. Basta fare una using e avete tutte le estensioni. Certo niente di speciale e sarebbe stato meglio se l'avesse fatto Microsoft questo lavoro. Comunque può essere d'aiuto...

Commenti

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.



Segnala su: Facebook MSDN Social Twitter Segnalo Wikio Diggita Technorati Stumbleupon Google Yahoo FriendFeed Delicious Furl

Nella stessa categoria
I più letti del mese
TagCloud
.NET Framework, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Framework 4.0, ADO.NET Entity Framework, AJAX, Architettura, ASP, ASP.NET, ASP.NET 2.0, ASP.NET 2.0 per tutti, ASP.NET 4.0, ASPItalia.com, Custom Control, Databinding, Datagrid, HttpRuntime, IIS, Javascript, LINQ, LINQ to Entities, LINQ to SQL, Media Center, Microsoft Expression, Object Oriented Programming, Off Topic, PDC 2008, Silverlight, Silverlight - animazioni, Silverlight 2.0, Silverlight 3.0, User Control, Visual Studio, Windows 7, Windows CardSpace, Windows Client, Windows Communication Foundation, Windows Live Services, Windows Presentation Foundation, Windows Server, Windows Vista, Windows Workflow Foundation, XAML, XBox 360, XHTML, XML, XPS, XSLT
BLOG INFO
  • 199 post, 86 commenti, 42 trackback
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom
IN EVIDENZA