다음을 통해 공유


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

예제

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

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

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

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