mercredi 19 août 2009

Xaml, Enumeration et intellisense !

Un petit post bien sympa pour se faciliter la vie...

Lorsque nous construisons des contrôles graphiques (exemple : librairie de contrôles), il arrive que nous utilisions des propriétés qui retournent des membres d'énumération.

Lorsque l'on vient à déclarer ces contrôles dans un fichier xaml, et que l'on appelle la propriété en question pour lui affecter une valeur ...
rien ne se passe : l'intellisense est dans les choux !

Pour corriger cet "intelli-ignorance", il suffit d'appliquer un geste très simple :

1. déclarer le namespace dans le fichier AssemblyInfo.cs de la façon suivante :
[assembly: XmlnsDefinition("http://monTruxAMoi.com/wpf/", "nameSpaceDeLenumeration")]

XmlnsDefinition provient de System.Windows.Markup.

2. Je compile,

3. Enfin, dans le Xaml ou je désire utiliser mon contrôle, j'ajoute une déclaration xmlns:monTrux="http://monTruxAMoi.com/wpf/"

Hélas cela ne fonctionne "correctement" qu'en WPF ...
En Silverlight (même 3), Visual Studio ne résoud pas correctement les using dans les fichiers xxx.g.cs
du coup, on perd l'intellisense côté C# ... pas pratique !

mercredi 12 août 2009

Silverligh 3 : Fichiers de Styles

Une nouveauté intéressante de SL3 est la possibilité de sortir les styles utilisés du fichier App.xaml pour les placer dans des fichiers propre (exemple : Style.xaml).

Pour ce faire, créez un fichier de type Dictionnaire de ressource,
Et ensuite, dans le fichier App.xaml, ajouter les lignes suivantes :

<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>


Cela aura pour effet de fusionner la liste des fichiers indiqués par la source comme étant des ressources de l'application (utilisable donc par les appels "StaticResource").

@+