Confessions of a Dangerous Mind

Brain.FlushBuffer()
posts - 173, comments - 300, trackbacks - 196

Windows Forms to XAML: the converter!

Lo ammetto… scrivere convertitori mi ha sempre appassionato. Sin dai tempi in cui ho scritto il mio primo convertitore/parser da linguaggio per macchinari a controllo numerico, il fatto di poter delegare ad una macchina un’attività dispendiosa e soggetta ad errori quale la conversione tra linguaggi mi ha affascinato.

Molti sviluppatori stanno impiegando il mio convertitore VB6(2)XAML, e ancora oggi, dopo tre anni dal suo rilascio mi arrivano richieste di nuove implementazioni. Durante una chiacchierata ad un uno degli ultimi incontri della community XeDotNet è nata l’idea di scrivere quello che vedrete descritto in questo post: il convertitore da Windows Forms a XAML (e quindi a WPF o Silverlight).

Il convertitore funziona esattamente come quello per VB6, ovvero è stato implementato un motore di generazione dello XAML che si basa su templates personalizzati per generare dinamicamente lo XAML di destinazione. Accetta in input un assembly compilato contenente le form da convertire e dà la possibilità di selezionare da una combo tutte le form presenti nell’assembly. E’ presente anche la possibilità di avere una preview della form convertita.

Qui potete vedere una form Winform e la sua “omologa” convertita in WPF:

I control templates che ho già creato sono i seguenti:

Controllo Winform Controllo WPF
Form Window
Panel Canvas
Button Button
Label TextBlock
TextBox TextBox
CheckBox CheckBox
RadioButton RadioButton
ComboBox ComboBox
ProgressBar ProgressBar
GroupBox GroupBox
TabControl TabControl
TabPage TabItem
SplitContainer Grid
SplitterPanel Canvas

Ovviamente la conversione si basa su posizionamento assoluto utilizzando i canvas. Il tool è (MOLTO) in BETA e sono ben accette richieste, osservazioni e bug reporting. Lo potete scaricare qui. Happy conversion!

Print | posted on martedì 6 aprile 2010 18.15 |

Feedback

Gravatar

# re: Windows Forms to XAML: the converter!

Funziona anche per Compact Framework?
06/04/2010 19.42 | Lorenzo Barbieri
Gravatar

# re: Windows Forms to XAML: the converter!

Ciao Lorenzo! Non l'ho provato, ma anche se non funzionasse, sarebbe sicuramente possibile adattarlo. Del resto i template è possibile scriverseli, quindi potrebbero essere scritti dei template per convertire i controlli del CF.
06/04/2010 20.51 | info@codesapiens.net
Gravatar

# re: Windows Forms to XAML: the converter!

Puoi fare una prova? :-)
06/04/2010 21.26 | Lorenzo Barbieri
Gravatar

# Windows Forms to XAML

Windows Forms to XAML: the converter! ダウンロード場所
07/04/2010 2.04 | ゆむかブログ
Gravatar

# re: Windows Forms to XAML: the converter!

@Lorenzo: ho creato un progettino per Windows Mobile 5 Pocket PC. Ho compilato e passato la form al convertitore ed il risultato è che l'ha convertita correttamente. Ovviamente, per convertire direttamente per Windows Phone 7 (senza doverci mettere le mani in fase di post parsing) bisogna fare delle piccole modifiche... stay tuned!
08/04/2010 14.26 | info@codesapiens.net

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 3 and 6 and type the answer here:

Powered by: