aprile 2008 Blog Posts
Su Codeplex è apparso un interessante progetto chiamato Transitionals. Il progetto consiste in una libreria che permette di applicare degli effetti di transizione da uno usercontrol all'altro il tutto semplicemente modificando il valore della proprietà Content dell'oggetto contenitore TransitionElement. Ecco un esempio di utilizzo: <Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:loc="clr-namespace:Transitions"
xmlns:transc="clr-namespace:Transitionals.Controls;assembly=Transitionals"
xmlns:transt="clr-namespace:Transitionals.Transitions;assembly=Transitionals"
x:Class="Transitions.Window1"
x:Name="Window"
Title="Transitions"
Width="640" Height="480">
<Window.Resources>
...
Posto qui una versione alternativa al recente post di Igor a dimostrazione che XAML può evitare l'uso del codice,a beneficio di chi non legge i commenti nei blogs... <Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication9.Window1"
x:Name="Window"
Title="Window1"
Width="640" Height="480">
<Window.Triggers>
<EventTrigger RoutedEvent="Window.Loaded">
<BeginStoryboard Name="MyStoryboard">
...
Un amico mi ha chiesto se attraverso l'uso delle lambda function è possibile "elegantizzare" il classico codice che si occupa di eseguire il marshaling tra UI e thread secondario. Il codice di partenza è: void BusDriver_TelegramReceived (BusDriver sender, BusTelegram telegram)
{
if (InvokeRequired)
{
this.Invoke((TelegramReceived)delegate(BusDriver driver, BusTelegram tgram)
...
Mentre in WPF per definire uno stile implicito è sufficiente non utilizzare x:Key nella definizione dello style: <Style TargetType="{x:Type Button}">
<!--No key defined!-->
<Setter Property="Background" Value="Blue" />
<Setter Property="Foreground" Value="Yellow" />
<Setter Property="FontSize" Value="22" />
<Setter Property="FontWeight" Value="Bold" />
...