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

Un pulsante particolare con Windows Presentation Foundation

Oggi vediamo come sia possibile con Windows Presentation Foundation, in fase di design, creare un pulsante con all'interno un'immagine ruotata. Mi sono imposto di utilizzare il più possibile XAML, il linguaggio di markup utilizzato per la parte di design in WPF sebbene lo stesso risultato si possa ottenere da codice gestito, per una questione di "mentalità" orientata a WPF.

Creando un nuovo progetto WPF, nell'editor di codice XAML digitiamo questo:

<Button Margin="46,75,47,81" Name="Button1">
  <Border BorderThickness="5" Height="70" Width="120" BorderBrush="Salmon" HorizontalAlignment="Center" VerticalAlignment="Center">
    <Border.LayoutTransform>
      <RotateTransform Angle="15" />
    </Border.LayoutTransform>
    <Image Source="logovbtt.gif" Height="60" Width="110" Stretch="Fill"  />
  </Border>
</Button>

Le proprietà Margin e Name del controllo Button assegnano rispettivamente la posizione e un nome. L'elemento Border è quello cruciale. Al suo interno, abbiamo inserito una immagine (elemento Image, la cui proprietà Source specifica il percorso del file). Le proprietà BorderThickness e BorderBrush permettono rispettivamente di specificare lo spessore e il colore del bordo. La posizione all'interno del pulsante viene specificata tramite le proprietà HorizontalAlignment e VerticalAlignment, i cui attributi Center stabiliscono la posizione al centro del controllo.

All'interno dell'elemento Border, l'elemento Border.LayoutTransform permette di specificare alcune impostazioni grafiche per il contenuto, in questo caso abbiamo specificato una rotazione di 15 gradi in senso orario (col segno "-" davanti si ottiene una rotazione antioraria).

Compilando e avviando l'applicazione, questo è il risultato:

 

Molto bello vero? XAML mi piace sempre di più, non solo per la sintassi ma anche per la sua logica gerarchica che permette di capire meglio altre logiche di funzionamento di WPF. Giusto come esempio, si può iniziare a capire come all'interno di un controllo o contenitore possano essere inseriti a loro volta altri controlli o contenitori e così via. In questo caso, nel contenitore Grid viene inserito un pulsante, al cui interno viene inserita un'immagine, che a sua volta viene contornata da un bordo.

Si può poi intercettare l'evento Click del pulsante aggiungendo un attributo Click all'elemento Button, che richiamerà il codice del gestore dell'evento stesso.

Mi piace proprio questo WPF!

Alessandro

Print | posted on mercoledì 11 luglio 2007 23:41 |

Powered by:
Powered By Subtext Powered By ASP.NET