Comment : utiliser un objet LengthConverter

Mise à jour : novembre 2007

Cet exemple montre comment créer et utiliser une instance de l'objet LengthConverter. Dans cet exemple, les valeurs de positionnement Canvas sont représentées par Content dans un ListBoxItem. Le Content est ultérieurement converti en une instance de Double, argument requis pour le positionnement. La valeur est ensuite reconvertie en String à l'aide du LengthConverter. La valeur s'affiche en tant que texte dans un élément TextBlock à l'aide de la méthode GetLeft.

Ce code est abrégé. Pour afficher l'exemple complet, consultez Propriétés de positionnement de la zone de dessin, exemple.

Exemple

L'exemple suivant montre comment créer et utiliser une instance de l'objet LengthConverter. Une méthode personnalisée appelée ChangeLeft est définie. Elle convertit le contenu d'un ListBoxItem (défini dans un fichier XAML (Extensible Application Markup Language) séparé) en une instance de Double et ensuite en String. Cette méthode passe le ListBoxItem à un objet LengthConverter, qui convertit le ListBoxItem Content en une instance de Double. Notez que cette valeur a déjà été convertie en String à l'aide de la méthode ToString. Cette valeur est ensuite retournée à la méthode SetLeft et à la méthode GetLeft du Canvas afin de modifier la position de l'objet text1.

Private Sub ChangeLeft(ByVal sender As Object, ByVal e As SelectionChangedEventArgs)
    Dim li As ListBoxItem = CType(CType(sender, ListBox).SelectedItem, ListBoxItem)
    Dim myLengthConverter As New LengthConverter
    Dim db1 As Double = CType(myLengthConverter.ConvertFromString(li.Content.ToString()), Double)
    Canvas.SetLeft(text1, db1)
    Dim st1 As String = CType(myLengthConverter.ConvertToString(Canvas.GetLeft(text1)), String)
    canvasLeft.Text = "Canvas.Left = " + st1
End Sub
     private void ChangeLeft(object sender, SelectionChangedEventArgs args)
        {
            ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
            LengthConverter myLengthConverter = new LengthConverter();
            Double db1 = (Double)myLengthConverter.ConvertFromString(li.Content.ToString());
            Canvas.SetLeft(text1, db1);
            String st1 = (String)myLengthConverter.ConvertToString(Canvas.GetLeft(text1));
            canvasLeft.Text = "Canvas.Left = " + st1;
        }

Voir aussi

Tâches

Propriétés de positionnement de la zone de dessin, exemple

Référence

Canvas

LengthConverter