Практическое руководство. Использование объекта LengthConverter
Обновлен: Ноябрь 2007
В этом примере описывается порядок создания и использования экземпляра объекта LengthConverter. В этом примере значения позиционирования Canvas представляются свойством Content в объекте ListBoxItem. Впоследствии свойство Content преобразуется в экземпляр объекта Double, который является обязательным аргументом для позиционирования. Затем значение преобразуется обратно к типу String с помощью объекта LengthConverter. Значение отображается в виде текста в элементе TextBlock с помощью метода GetLeft.
Этот код является сокращенным. Полный пример см. в разделе Пример использования свойств позиционирования полотна.
Пример
В следующем примере описывается порядок создания и использования экземпляра объекта LengthConverter. Определяется пользовательский метод ChangeLeft, который преобразует содержимое объекта ListBoxItem (определенное в отдельном файле Язык XAML (Extensible Application Markup Language)) в экземпляр типа Double, а затем в экземпляр типа String. Этот метод передает объект ListBoxItem объекту LengthConverter, который преобразует свойство ListBoxItemContent в экземпляр типа Double. Обратите внимание, что это значение уже было преобразовано к типу String с помощью метода ToString. Затем это значение передается обратно в метод SetLeft и метод GetLeft объекта Canvas, что позволяет изменить положение объекта 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;
}
См. также
Задачи
Пример использования свойств позиционирования полотна