Megosztás a következőn keresztül:


Útmutató: GridLengthConverter-objektum létrehozása és használata

példa

Az alábbi példa bemutatja, hogyan hozhat létre és használhat GridLengthConverteregy példányát. A példa egy changeColnevű egyéni metódust határoz meg, amely a ListBoxItem-et egy GridLengthConverter-be továbbítja, ami a ContentListBoxItem-jét átalakítja egy GridLengthpéldányává. A konvertált érték ezután a Width elem ColumnDefinition tulajdonságának értékeként lesz visszaadva.

A példa egy második, changeColValnevű egyéni metódust is definiál. Ez az egyéni metódus átalakítja a ValueSlider-t egy String-vé, majd ezt az értéket visszaviszi a ColumnDefinition számára, mint az elem Width-je.

Vegye figyelembe, hogy egy különálló XAML-fájl határozza meg egy ListBoxItemtartalmát.

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;
    }
}
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

Lásd még