مشاركة عبر


كيفية القيام بما يلي: انشاء و استخدام كائن GridLengthConverter

مثال

يوضح المثال التالي كيفية إنشاء مثيل من GridLengthConverter واستخدامها. يحدد المثال أسلوب استدعاء يسمى changeCol ، الذى يمرر الـ ListBoxItem إلى GridLengthConverter الذي يحول Content من ListBoxItem لمثيل من GridLength. ثم يتم تمرير هذه القيمة كقيمة لخاصية Width للعنصر ColumnDefinition.

يحدد المثال أيضاً أسلوب آخر يدعى changeColVal. هذه الطريقة تقوم بتحويل Value من Slider إلى String، ثم يقوم بتمرير هذه القيمة إلى ColumnDefinition كـ Width للعنصر.

لاحظ أن ملف Extensible Application Markup Language (XAML) منفصل يعرّف محتويات ListBoxItem.

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