Posts
42
Comments
65
Trackbacks
12
[WPF] WPF.Start()

Come per qualunque altra applicazione, anche le applicazioni WPF hanno bisogno di un entry point, ovvero il famoso metodo "Main" decorato con l'attributo [STAThread].

Con WPF abbiamo (almeno) tre modi per poter definire quale deve essere il "punto di ingresso" della nostra applicazione. Tralasciando il tradizionale metodo "lato C#" analiziamo gli altri due modi (molto simili) che XAML ci mette a disposizione:

1. Creo un file EntryPoint.xaml e il relativo EntryPoint.cs e li "lego" tra di loro:

2. Creo un unico file EntryPoint.xaml senza dover necessariamente definire il relativo file EntryPoint.cs

 

NOTA: In entrambi i casi la build action del file xaml deve essere impostata su ApplicationDefinition.

Dando un occhio alla cartella obj del nostro progetto, si nota subito che, in entrambe le soluzioni il compilatore genera un file EntryPoint.g.cs praticamente identico, se non per il fatto che, nel secondo caso, non avendo un corrispondente file C# con un namespace correttamente definito, il compilatore assegna al file creato il namespace XamlGeneratedNamespace.
E' in questo file che viene generato, oltre al metodo InitializeComponent(), il metodo che fungerà da entry point per la nostra applicazione:

Sarà che sono prolisso, sia quando parlo, sia quando scrivo, ma l'idea che il codice deve essere autoesplicativo ha sempre caratterizzato il mio modo di vedere...insomma se devo scegliere, preferisco di gran lunga la prima e più "completa" soluzione.

posted on mercoledì 20 febbraio 2008 23.06 Print
Comments
Gravatar
# re: [WPF] WPF.Start()
kraloyun
31/05/2008 19.26
kraloyun
kral oyun
oyun
oyunlar
kraloyun
kral oyun
oyun
oyunlar
blog
blogcu
kido
azbuz
facebook
arkadaş
flash games
fotoput
youtube..q

Post Comment

Title *
Name *
Email
Url
Comment *  
Please add 1 and 4 and type the answer here:
News
Habemus Logo...

Habemus Logo...il logo del mio blog



Il mio profilo su LinkedIn

View Alessandro Melchiori's profile on LinkedIn



i like it...

Xobni outlook add-in for your inbox