refusi fiabeschi apparte, nella tarda sera di ieri, mi sono deciso a sviluppare, qualcosa di concreto con Avalon.
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.
se fino ad adesso, eravamo abituati a vedere una proprietà "solo" come modo sicuro per accedere ad un campo privato, nascondendo la complessità del codice di validazione e altro, Avalon ne aggiunge due nuovi tipi:
Dependency Property
Attached Properties
ma facciamo un passo in dietro, ci sono diverse vie per impostare una proprietà
impostarla localmente:
<Button Background="red"/>
con il tag della proprietà
<Button> <Button.Background> <HorizontalGradient StartColor="Blue" EndColor="White"/> </Button.Background> </Button>
Tramite altri tipi
<CheckBox DockPanel.Dock="Top">Test</CheckBox>
con il DataBind o attraverso le risorse (globali o locali)
<DockPanel.Resources> <SolidColorBrush x:Key="MyBrush" Color="gold"/> </DockPanel.Resources> <Text Foreground="{StaticResource MyBrush}" TextContent="Text" />
tramite la classe Style, e non dimentichiamo la possibilità di animarle.
tutto questo è reso possibile dal "sistema delle proprietà"; che Avalon mette a disposizione.
possiamo trarre vantaggio da questa infrastruttura:
- "estendendo" una proprietà con una Dependency Property per fornire servizi di Stylig o DataBinding,
- dichiarando una proprietà in una classe, per utilizzarla su altri tipi (Attached Properties), il panel le usa per impostare il layout dei propri figli.
Dependency Property
per creare una Dependency Property, è necessario registrarla nel sistema di dipendenze di Avalon, tramite il metodo DependencyProperty.Register.
le Dependency Property possono essere utilizzate solo dai tipi che ereditano da DependencyObject.
Quando una propietà deve supportare gli Styles, DataBinding, Animazioni, Ereditarietà, Invalidazione e Valori di Default è qua che ci dobbiamo rivolgere
Attached Propeties
Come dicevo, in alcuni casi può essere utile, dichiarare una proprietà, che poi verrà usata su alri tipi.
Queste proprietà vengono chiamate Attached Propertie e devono essere registate tramite il metodo DependencyProperty.RegisterAttached.
è possibile utilizzarle su ogni oggetto derivato da DependencyObject ( e sono molti ).
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.
<CheckBox DockPanel.Dock="Top">Test</CheckBox> DockPanel.SetDock(myCheckbox, Dock.Top);
in genere ricorreremo alle Attached Propeties per impostare il Layout degli elementi figli rispetto al padre
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- .NET Framework 4.0 beta 1: WPF 4.0, il 18 maggio 2009 alle 15:40
- CTP che va SDk che trovi, il 20 luglio 2006 alle 12:15
- bye bye ScreenSpaceLines3D, il 23 giugno 2006 alle 15:04
- WinFX cambiamenti natalizzi, il 21 dicembre 2005 alle 10:56
- Avalon tutto scorre , l'8 novembre 2005 alle 15:24
- Windows Presentation Foundation, il 26 settembre 2005 alle 15:03