Partilhar via


Como: Usar um objeto LengthConverter

Este exemplo mostra como criar e usar uma instância do objeto LengthConverter. Neste exemplo, valores de posição Canvas são representados por Content em um ListBoxItem. O Content é posteriormente convertido em uma instância de Double, que é um argumento necessário para o posicionamento. O valor então é convertido de volta em um String usando o LengthConverter. O valor é mostrado como texto em um elemento TextBlock usando o método GetLeft.

Este código é abreviado. Para ver o exemplo completo, consulte o Exemplo de propriedades de posicionamento da tela.

Exemplo

O seguinte exemplo mostra como criar e usar uma instância do objeto LengthConverter. Um método customizado chamado ChangeLeft é definido, o qual converte o conteúdo de um ListBoxItem (definido em um arquivo Extensible Application Markup Language (XAML) separado) para uma instância de Double, e posteriormente em uma String. This method passes the ListBoxItem to a LengthConverter object, which converts the ListBoxItem Content to an instance of Double. Notice that this value has already been converted to a String by using the ToString method. Este valor é então passado de volta para o método SetLeft e o método GetLeft do Canvas para mudar a posição do 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;
        }

Consulte também

Tarefas

Exemplo de propriedades de posicionamento da tela

Referência

Canvas

LengthConverter