다음을 통해 공유


방법: GridLengthConverter 개체 만들기 및 사용

업데이트: 2007년 11월

예제

다음 예제에서는 GridLengthConverter의 인스턴스를 만들고 사용하는 방법을 보여 줍니다. 이 예제에서는 ListBoxItemContentGridLength의 인스턴스로 변환하는 GridLengthConverterListBoxItem을 전달하는 changeCol이라는 사용자 지정 메서드를 정의합니다. 변환된 값은 ColumnDefinition 요소의 Width 속성 값으로 다시 전달됩니다.

이 예제에서는 changeColVal이라는 두 번째 사용자 지정 메서드도 정의합니다. 이 사용자 지정 메서드는 SliderValueString으로 변환한 다음 이 값을 요소의 Width로 다시 ColumnDefinition에 전달합니다.

ListBoxItem의 내용은 별도의 XAML(Extensible Application Markup Language) 파일에 정의됩니다.

관련 XAML 파일을 비롯하여 전체 샘플을 보려면 GridLengthConverter 개체 샘플을 참조하십시오.

Private Sub changeColVal(ByVal sender As Object, ByVal args As RoutedPropertyChangedEventArgs(Of Double))

    txt1.Text = "Current Grid Column is " + hs1.Value.ToString()
End Sub

Private Sub changeCol(ByVal sender As Object, ByVal args As SelectionChangedEventArgs)

    Dim li1 As ListBoxItem = CType(CType(sender, ListBox).SelectedItem, ListBoxItem)
    Dim myGridLengthConverter As System.Windows.GridLengthConverter = New System.Windows.GridLengthConverter()
    If (hs1.Value = 0) Then

        Dim gl1 As GridLength = CType(myGridLengthConverter.ConvertFromString(li1.Content.ToString()), GridLength)
        col1.Width = gl1

    ElseIf (hs1.Value = 1) Then

        Dim gl2 As GridLength = CType(myGridLengthConverter.ConvertFromString(li1.Content.ToString()), GridLength)
        col2.Width = gl2

    ElseIf (hs1.Value = 2) Then

        Dim gl3 As GridLength = CType(myGridLengthConverter.ConvertFromString(li1.Content.ToString()), GridLength)
        col3.Width = gl3
    End If
End Sub
        private void changeColVal(object sender, RoutedEventArgs e) 
        {
            txt1.Text = "Current Grid Column is " + hs1.Value.ToString();
        }

        private void changeCol(object sender, SelectionChangedEventArgs args)
        {
            ListBoxItem li = ((sender as ListBox).SelectedItem as ListBoxItem);
            GridLengthConverter myGridLengthConverter = new GridLengthConverter();
            if (hs1.Value == 0)
            {
                GridLength gl1 = (GridLength)myGridLengthConverter.ConvertFromString(li.Content.ToString());
                col1.Width = gl1;
            }
            else if (hs1.Value == 1)
            {
                GridLength gl2 = (GridLength)myGridLengthConverter.ConvertFromString(li.Content.ToString());
                col2.Width = gl2;
            }
            else if (hs1.Value == 2)
            {
                GridLength gl3 = (GridLength)myGridLengthConverter.ConvertFromString(li.Content.ToString());
                col3.Width = gl3;
            }
        }

참고 항목

참조

GridLengthConverter

GridLength