Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Esempio di stile in Windows Presentation Foundation

Una caratteristica molto importante di Windows Presentation Foundation è costituita dagli stili grafici. Come potete immaginare, uno stile definisce un gruppo di proprietà che è possibile assegnare a un determinato tipo di controlli. Questi, poi, possono conformarsi allo stile definito tramite una semplice dichiarazione in XAML.

In Visual Studio 2005, dopo aver creato un progetto WPF, digitate quanto segue (oppure, fate copia-incolla da qui! :-) ):

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WindowsApplication1" Height="300" Width="300"
    >

  <Window.Resources>
    <Style x:Key="MyStyledButton" TargetType="Button">
      <Setter Property="FontFamily" Value="Courier New" />
      <Setter Property="FontSize" Value="12" />
      <Setter Property="FontWeight" Value="Bold" />
      <Setter Property="Width" Value="150" />
      <Setter Property="Height" Value="75" />
      <Setter Property="Background" >
        <Setter.Value>
          <LinearGradientBrush>
            <GradientStop Color="Yellow" Offset="0"/>
            <GradientStop Color="Green" Offset="0.5"/>
            <GradientStop Color="Violet" Offset="1"/>
          </LinearGradientBrush>
        </Setter.Value>
      </Setter>

      <Setter Property="Foreground">
        <Setter.Value>
          <LinearGradientBrush>
            <GradientStop Color="Orange" Offset="0"/>
            <GradientStop Color="Black" Offset="0.5"/>
            <GradientStop Color="Red" Offset="1"/>
          </LinearGradientBrush>
        </Setter.Value>
      </Setter>
    </Style>
  </Window.Resources>

  <Grid>
    <Button Style="{StaticResource MyStyledButton}">
      Pulsante con stile
    </Button>
    </Grid>
</Window>

Gli stili sono definiti nelle risorse di un contenitore. In questo caso abbiamo usato Window, ma poteva essere, ad esempio, uno StackPanel. L'elemento Style indica l'inizio della definizione dello stile e le proprietà x:Key e TargetType indicano, rispettivamente, un identificatore per lo stile e il tipo di controllo cui lo stesso si riferisce (in questo esempio lo stile è definito per i pulsanti, ma può essere un altro tipo di controllo). L'elemento Setter consente di impostare delle proprietà del controllo (attributo Property) sul relativo valore (attributo Value). Nell'esempio, abbiamo innanzitutto definito le proprietà relative al font (proprietà FontFamily, FontSize e FontWeight), quindi le dimensioni del pulsante (Width ed Height). E' interessante, a mio avviso, capire come, grazie alla consueta struttura gerarchica di XAML, sia possibile anche definire lo sfondo del pulsante e il colore di primo piano del testo tramite gli oggetti Brush (in questo caso abbiamo usato il LinearGradientBrush in entrambi i casi per definire dei gradienti). Poichè la proprietà Value non è costituita da un valore singolo, abbiamo dovuto suddividere il tag Setter (Setter.Value), avendo la possibilità di definire al suo interno altri elementi.

Fatto questo, si disegna il pulsante. Come potete osservare, per utilizzare lo stile è sufficiente assegnare un attributo Style all'elemento Button, facendo riferimento alla risorsa (StaticResource) a cui precedentemente abbiamo assegnato l'identificatore. Avviando l'applicazione, questo è il simpatico risultato che otteniamo a video:

Lo stile definito può così essere assegnato ad altri pulsanti. Che ne dite? ;-)

Alessandro

Print | posted on giovedì 13 settembre 2007 02:25 | Filed Under [ Windows Presentation Foundation ]

Powered by:
Powered By Subtext Powered By ASP.NET