Compartir a través de


Cómo: Usar un objeto LengthConverter

Actualización: noviembre 2007

En este ejemplo se muestra cómo crear y usar una instancia del objeto LengthConverter. En este ejemplo, los valores de ubicación de Canvas se representan mediante la propiedad Content en un objeto ListBoxItem. Content se convierte después en una instancia de Double, que es un argumento obligatorio para la ubicación. A continuación, el valor se vuelve a convertir en String mediante LengthConverter. El valor se muestra como texto en un elemento TextBlock mediante el uso del método GetLeft.

Ésta es una versión reducida del código. El ejemplo completo está disponible en Ejemplo Canvas Positioning Properties.

Ejemplo

En el ejemplo siguiente se muestra cómo crear y usar una instancia del objeto LengthConverter. Se define un método personalizado denominado ChangeLeft, que convierte el contenido de ListBoxItem (que se define en un archivo de Lenguaje de marcado de aplicaciones extensible (XAML) aparte) en una instancia de Double, y posteriormente en un objeto String. Este método pasa ListBoxItem a un objeto LengthConverter, que convierte Content de ListBoxItem en una instancia de Double. Observe que este valor ya se ha convertido en String mediante el método ToString. A continuación, este valor se vuelve a pasar a los métodos SetLeft y GetLeft de Canvas para cambiar la posición del objeto 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;
        }

Vea también

Tareas

Ejemplo Canvas Positioning Properties

Referencia

Canvas

LengthConverter