August 2010 Blog Posts
Finestre Wpf con immagine di sfondo e trasparenti
Windows Presentation Manager fra le molte frecce al suo arco ne offre diverse che permettono di modificare l’aspetto delle sue finestre, per default rettangolari. Qui ci occupiamo delle Window dotate di forma che dipende dall’immagine incorporata nel suo Background nonché caratterizzate da parziale trasparenza.
Il piccolo ma significativo esempio che varrà illustrato fa mostra di sé nella figura seguente:
dove al posto della solita finestra si ha la figura di un calciatore fluttuante sul desktop con due normali pulsanti (Button). Per la cronaca, tale immagine deriva da una vecchia raccolta ClipArt97, tradotta dal formato WMF in PNG,...
Pulsanti in forma di frecce e ruotati in quattro direzioni
Nella maggior parte degli esempi i pulsanti (oggetti Button) si presentano magari colorati e dipinti in molti modi e con svariate sfumature, però la loro forma è rettangolare. Peraltro associare ad essi una shape non è difficile, anche se il convento WPF in prima battuta sembrerebbe che fornisca due sole figure geometriche, l’ellisse e – di nuovo! – il rettangolo, al più con angoli arrotondati.
Presto si scopre che, a dirla tutta, la classe Windows.Shapes è dotata di altri figli oltre a Rectangle ed Ellypse, tra cui Line, Path, Polyline e Polygon....
Spostare controlli di una griglia con Grid.RowProperty / Grid.ColumnProperty
Come si sa Grid.RowProperty e Grid.ColumnProperty sono attached property, nel senso che la loro definizione nella tag che in XAML fa riferimento non ad una proprietà specifica dell’oggetto sito in una cella del contenitore Grid (come per esempio Margin) bensì ad una caratteristica del “padre” Grid. Di qui la sintassi dotted, Grid. eccetera, nonché l’obbligo di utilizzare nel codice una sintassi GetValue o SetValue, come nell’esempio seguente:
Dim Riga = Oggetto.GetValue(Grid.RowProperty) ' Ci dà la riga dell’Oggetto
Mentre con Margin si può ricorrere, semplicemente, a Oggetto.Margin
Nota. Volendo, anche Oggetto.GetValue(Margin) è lecito. Analogamente con SetValue.
L’ideuzza...
Simulazione di finali di un campionato di calcio
Il procedimento di questo programmino, creato in occasione degli ultimi Mondiali sudafricani, ha origini molto lontane. Inizialmente l’ho sviluppato in un modello Excel dotato di macro VBA, più avanti ho sfruttato un controllo DataGridView inserito in una Window Form. In entrambi i casi ho ripreso il ben noto schema piramidale inserito nelle celle dell’uno o dell’altro.
Esaminando infine la griglia (Grid) di una finestra WPF mi sono infine detto che la si può direttamente utilizzare, mutatis mutandis, in modo più diretto e ottenendo una creatura meno pesante.
L’idea base si può grossomodo schematizzare con la...