如何:使用 LengthConverter 对象

更新:2007 年 11 月

此示例演示如何创建和使用 LengthConverter 对象的实例。在此示例中,Canvas 的定位值由 ListBoxItem 中的 Content 来表示。稍后将 Content 转换成作为所需定位参数的 Double 的实例。然后,使用 LengthConverter 将此值重新转换为 String。系统会使用 GetLeft 方法将值显示为 TextBlock 元素中的文本。

此代码是代码节略。若要查看完整示例,请参见画布定位属性示例

示例

下面的示例演示如何创建和使用 LengthConverter 对象的实例。此处定义了一个名为 ChangeLeft 的自定义方法,该方法会将 ListBoxItem(在单独的 可扩展应用程序标记语言 (XAML) 文件中定义)的内容转换为 Double 的实例,然后再转换为 String。此方法将 ListBoxItem 传递给 LengthConverter 对象,该对象将 ListBoxItem Content 转换为 Double 的实例。请注意,已使用 ToString 方法将此值转换为 String。然后将此值回传给 CanvasSetLeft 方法和 GetLeft 方法,以便更改 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;
        }

请参见

任务

画布定位属性示例

参考

Canvas

LengthConverter