Calculer les mensualités d’un crédit ...10 mai 2012

Image de l'article "Calculer les mensualités d’un crédit immobilier"

Voici une petite fonction et son exemple d’utilisation qui vous permettra de déterminer le montant de remboursement mensuel d’un crédit immobilier à partir du montant d’emprunt, de la durée d’emprunt et du taux de crédit + assurance. Lire la suite…

StringFormat dans un Binding30 avril 2012

Image de l'article "StringFormat dans un Binding"

Il n’est pas toujours nécessaire de passer par un IValueConverter pour transformer une valeur lors de l’affichage dans un TextBlock ou autre contrôle affichant du texte. La propriété StringFormat de Binding permet de faire du formattage de texte tout comme la fonction string.Format bien connue. Lire la suite…

Contrôle HyperLink indépendant2 avril 2012

Image de l'article "Contrôle HyperLink indépendant"

Le contrôle de liens hypertextes sont disponibles en WPF mais uniquement en relation avec d’autres composants, tels que les Paragraph ou Label. Je vous propose là une version « standalone » d’un contrôle parfois bien utile. Lire la suite…

Binding sur une propriété de ListBoxItem10 février 2012

Image de l'article "Binding sur une propriété de ListBoxItem"

Au sein du ListBox.ItemTemplate, vous voudriez effectuer un Binding sur la propriété IsSelected du ListBoxItem contenant votre DataTemplate.

Voici le code qu’il vous faut :


<ListBox.ItemTemplate>
    <DataTemplate>
        <CheckBox IsChecked="{Binding IsSelected, RelativeSource{RelativeSource AncestorType=ListBoxItem}}" />
    </DataTemplate>
</ListBox.ItemTemplate>

Selection automatique du texte lors d’u...3 février 2012

Image de l'article "Selection automatique du texte lors d’une prise de focus"

Voici une classe bien pratique permettant de définir sur l’ensemble des contrôle d’un container (Grid ou autre dérivé Panel) si les contrôles de type TextBox voient leur texte automatiquement sélectionné lorsqu’il prennent le focus souris ou clavier.

Source : http://megasnippets.com/source-codes/csharp/auto_select_text_textbox_dependencyproperty_flag Lire la suite…

Exemple de code Plinq en C# 4.030 janvier 2012

Image de l'article "Exemple de code Plinq en C# 4.0"

Voici un petit exemple de code utilisant Plinq en C# 4.0. Plinq étant une extension de Linq permettant d’itérer sur une collection de façon parallèle en utilisant des threads du ThreadPool natif. Lire la suite…

Aperçu de la classe BitmapEffect en WPF21 octobre 2011

Image de l'article "Aperçu de la classe BitmapEffect en WPF"

Il est existe en WPF, une propriété (DependencyProperty) applicable à des UIElement permettant de greffer quelques effets visuels sur ces derniers. Cette propriété se nomme BitmapEffect et accepte des instances de : DropShadowBitmapEffect, OuterGlowBitmapEffect, EmbossedBitmapEffect, BevelBitmapEffect et BitmapEffectGroup (qui permet de cumuler plusieurs effets).

Je vous propose de constater les effets produits en regardant les exemples qui suivent.
Lire la suite…

Inverser une couleur en XAML via un Converter19 octobre 2011

Image de l'article "Inverser une couleur en XAML via un Converter"

Voici un exemple assez simple permettant de créer une SolidColorBrush de couleur inverse via un Converter en XAML.

Seul le Convert du IValueConverter nécessite d’être implémenté ici.

class ReverseBrushConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var brush = value as SolidColorBrush;

        if (brush == null) return Binding.DoNothing;
        return new SolidColorBrush(ReverseColor(brush.Color));
    }

    private Color ReverseColor(Color color)
    {
        return Color.FromArgb(color.A, (byte)(255 - color.R), (byte)(255 - color.G),
                                (byte)(255 - color.B));
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

Le canal Alpha n’est pas modifié ici afin d’éviter d’avoir des couleurs transparentes lors de l’inversion de couleurs pleines. Mais vous pouvez adapter le code pour prendre en charge certains cas particuliers.

Source : ReverseBrushConverter

Effectuer une interpolation linéaire entre 2...5 octobre 2011

Image de l'article "Effectuer une interpolation linéaire entre 2 couleurs"

La fonction gère également la variation de Alpha qui pourrait y avoir entre les couleurs.

private Color GetGradientColor(Color from, Color to, double ratio)
{
    var aDiff = to.A - from.A;
    var rDiff = to.R - from.R;
    var gDiff = to.G - from.G;
    var bDiff = to.B - from.B;

    return Color.FromArgb((byte)(from.A + ratio * aDiff), (byte)(from.R + ratio * rDiff),
                            (byte)(from.G + ratio * gDiff), (byte)(from.B + ratio * bDiff));
}

Attribuer des ICommand à des raccourcis clav...26 août 2011

Image de l'article "Attribuer des ICommand à des raccourcis claviers en XAML"

Toujours dans l’optique de bien respecter ce merveilleux modèle MVVM dans le cadre de nos développements WPF, je vous propose aujourd’hui une extension pour les fenêtres (type Window) permettant d’associer à des raccourcis clavier des commandes de votre ViewModel par simple Binding dans le code XAML.
Lire la suite…

Récupérer la version Clickonce de votre app...26 août 2011

Image de l'article "Récupérer la version Clickonce de votre application"

Voici un petit bout de code bien pratique permettant de connaître la version déployée de votre application en cours d’exécution :

// Version de l'assembly en cours d'exécution par défault
Version v = Assembly.GetExecutingAssembly().GetName().Version;

// Vérifier si l'application a été installée par ClickOnce
if (ApplicationDeployment.IsNetworkDeployed)
{
    // Récupération de la version déployée par ClickOnce
    v = ApplicationDeployment.CurrentDeployment.CurrentVersion;
}

// Afficher la version à l'utilisateur
string sVersion = string.Format("Version: {0}", v);
MessageBox.Show(sVersion, "Application version");

Source MegaSnippets : Programmatically get the (Click-Once Published) Version

Implémentation d’une ICommand de faço...23 août 2011

Image de l'article "Implémentation d’une ICommand de façon générique"

Dans un précédent article (Le design pattern MVVM), je vous présentais ce qui devenait un standard grandissant dans le monde du développment Microsoft WPF.

Dans cet article, je vous proposais déjà une implémentation de ICommand permettant d’attacher à un évènement simple de la vue, un bout de code de votre choix.

Voici une amélioration de cette classe GenericCommand dans une version templatée (générique) qui vous apportera plus de flexibilité.
Lire la suite…

Snippet pour vos ViewModels30 juin 2011

Image de l'article "Snippet pour vos ViewModels"

Avis aux amateurs du MVVM :)

Je vous dépose aujourd’hui un petit bout de code englobé dans une classe dont vos ViewModels pourront hériter. Ce dernier permet de lancer l’évènement PropertyChanged de l’interface INotifyPropertyChanged à partir du code du ViewModel.
Lire la suite…

Détecter l’ouverture d’un port r...6 mai 2011

Image de l'article "Détecter l’ouverture d’un port réseau"

Code source disponible à cette adresse : Determines whether the specific port is used

Lire la suite…

C# Linq vs. Python7 avril 2011

Image de l'article "C# Linq vs. Python"

Voici un petit récapitulatif des principales fonctionnalités de C# - Linq et leur équivalence Python.

Lire la suite…