Affichage des articles dont le libellé est Tutoriel. Afficher tous les articles
Affichage des articles dont le libellé est Tutoriel. Afficher tous les articles

Tutoriels C# - Remise en forme après les vacances

C'est encore l'été mais il faut bien rentrer de vacances, comment me remettre au travail tranquillement. Je lis différents articles et je tombe sur cette page que je trouve intéressante :

http://www.csharpstar.com/csharp-coding-interview-questions-part-1/

Un tuto plutôt tranquille mais Whaou que c'est dur de répondre à toutes ces questions qui sont à mon avis un peu dans le désordre. Je trouve qu'il n'y a pas de progression dans ces questions certaines dures d'autres faciles aussi je vais directement à la dernière page pour voir :

C# Interview Questions for Experienced professionals (Part – 9)

How do you generate a random number in C#?
The Random class is used to create random numbers in C#.

//Example:
Random r = new Random();
int n = r.Next();

C'est toujours la même fonction utilisée depuis les débuts de l'informatique et le Langage C ? La vraie question aurait plutôt été : Comment tester le caractère véritablement aléatoire de la fonction random()...
certainement en analysant son spectre.

Mais c'est une très bonne remise en forme après les vacances, ce site est vraiment très complet. Alors pour se rafraîchir en C#, je vous conseille :

http://www.csharpstar.com/
Questions et tutoriels en C#
Bonne lecture.

Tutoriel - Création d'un Template T4 tt (text template)

Avec Entities Framework on a l'habitude de voir des Templates T4 générés par l'outil graphique mais s'il fallait partir de zéro ? Comment cela se passe t-il ? C'est l'objet de tutoriel.

Pages MSDN :
https://msdn.microsoft.com/en-us/library/bb126445.aspx
Code Generation and T4 Text Template

https://msdn.microsoft.com/en-us/library/ee844259.aspx
Run-Time Text Generation with T4 Text Templates

Donc on peut créer dans un projet Visual Studio un Text Template au moment de l'exécution : Bouton droit sur le projet -> Ajouter nouvel élément :

Création d'un Texte Template au sein d'un projet Visual Studio
Oui le plus délicat c'est la traduction en français "au moment de l'exécution" runtime donc ...

Pour aller plus loin, le plus simple c'est de convertir un fichier existant en Text Template. Lorsque l'on sauvegarde le fichier .tt un .cs est automatiquement créer avec du code CS pour utiliser le Template dans notre projet.



WPF Drag & Drop in Grid Sample

Drag and Drop, ce n'est peut être pas si facile. Bien souvent il manque quelques astuces de bases comme par exemple quand on Drop dans une Grid on aimerait bien savoir dans quelle cellule on a dropé l'objet.

Alors on part de l'exemple MSDN :

Drag and Drop on a user control

MSDN Drag and Drop Sample

On écrit une couleur dans le TextBox et en la dropant  dans un des cercles on change la couleur du cercle, on peut copier un cercle en le dropant en maintenant la touche contrôle appuyée.

C'est intéressant mais il nous manque tout un tas de choses. Ce que j'aimerais faire c'est dropper des objets dans une Grid savoir où il sont dans la Grid et pouvoir commencer réellement à jouer avec mes objets.

Il est par exemple intéressant de jouer avec les propriétés de ma Grid et d'y déplacer les objets :

Grid.SetRow(object,x), Grid.SetColumn, Grid.SetColumnSpan,Grid.SetRowSpan

Je sais maintenant déplacer mes objets dans la Grid mais où sont -ils ?

Grid.GetRow(object,x),  object.GetValue(Grid.RowProperty)

Et voilà que je peux commencer à jouer.

Mais je voudrais aller plus loin et pouvoir dropper mes objects mais qu'ils ne se chevauchent pas. Pouvoir leur donner la taille que je veux en la changeant dans un menu contextuel et toujours en évitant qu'ils ne se chevauchent.

Voilà l'exemple que je vous propose :

WPF Drag&Drop Sample CanDrop and CanResize

Vous trouverez dans le code source suivant, la création dynamique d'objets dans la grille pour détecter où les objets sont droppés. Et tout un tas d'autres astuces vous permettant de réellement bien commencer avec le Drap&Drop en WPF.

Requirements :
WPF .NET 4.0
Visual Studio 2010
Microsoft.Practices.Prism
Microsoft.Practices.Prism.Interactivity
Microsoft.Practices.Prism.UnityExtension
Microsoft.Practices.Prims.Unity

Download and Setup Prism Library 5.0 for WPF

Inutile de préciser que les packages nugets sont difficiles à installer en ce qui concerne Prism et ses différentes version, en constante modification de version de namespace... bref la résolution de vos problèmes passera peut être par l'exécution de la commande : 

PM> Install-Package CommonServiceLocator dans la "Console du gestionnaire de package" 

suivie de 

PM> Install-Package Prism.UnityExtensions -Version 4.1.0

Download Sample

Si vous souhaitez aller plus loin et notamment en fonctionnant avec le modèle MVVM, je vous recommande vivement les articles suivants :

Drag and Drop in WPF
Drag and Drop in WPF - Part II

Ce que j'apprécie vraiment dans ce Sample c'est la mise en place d'un "Adorner", une parure qui à travers  une Property DragAdornerTemplate liée à une DependencyProperty affiche une image en transparence lorsque l'on déplace les objets. Dans le Xaml de la façon suivante :

<ListBox dd:DragDrop.DragAdornerTemplate="{StaticResource PupilDragAdorner}">

Voilà je vous ai tout dis sur mes recherches en matière de Drag & Drop avec WPF. Si vous allez plus loi merci de nous faire part de vos avanceés.

Vous avez apprécié cet article, laissez un commentaire.