Nasıl yapılır: Tuval Konumlandırma Özelliklerini Alma veya Ayarlama
Bu örnek, alt içeriği konumlandırmak için öğenin konumlandırma Canvas yöntemlerinin nasıl kullanılageldi. Bu örnek, konumlandırma değerlerini temsil etmek için bir içinde içerik kullanır ve değerleri konumlandırma için gerekli bir bağımsız değişken olan ListBoxItemDouble örneklerine dönüştürür. Ardından değerler dizelere geri dönüştürülür ve yöntemi kullanılarak bir TextBlock öğede metin olarak GetLeft görüntülenir.
Örnek
Aşağıdaki örnek, on bir ListBox seçilebilir öğeye sahip bir öğe ListBoxItem oluşturur. Olay, SelectionChanged sonraki kod bloğu tarafından ChangeLeft tanımladığı özel yöntemi tetikler.
Her ListBoxItemDouble biri, yönteminin kabul ettiği bağımsız değişkenlerden biri olan SetLeft bir değeri temsil Canvas eder. bir örneğini temsil ListBoxItem etmek için kullanmak için önce doğru veri DoubleListBoxItem türüne dönüştürmeniz gerekir.
<ListBox Grid.Column="1" Grid.Row="1" VerticalAlignment="Top" Width="60" Margin="10,0,0,0" SelectionChanged="ChangeLeft">
<ListBoxItem>Auto</ListBoxItem>
<ListBoxItem>10</ListBoxItem>
<ListBoxItem>20</ListBoxItem>
<ListBoxItem>30</ListBoxItem>
<ListBoxItem>40</ListBoxItem>
<ListBoxItem>50</ListBoxItem>
<ListBoxItem>60</ListBoxItem>
<ListBoxItem>70</ListBoxItem>
<ListBoxItem>80</ListBoxItem>
<ListBoxItem>90</ListBoxItem>
<ListBoxItem>100</ListBoxItem>
</ListBox>
Kullanıcı seçimi ListBox değiştirirse özel yöntemi ChangeLeft çağırır. Bu yöntem, nesnesini bir örneğine dönüştüren bir nesnesine iletir (bu değerin yöntemi kullanılarak önceden bir değerine dönüştürüld olduğunu ListBoxItemLengthConverter fark ContentListBoxItemDoubleStringToString eder). Bu değer daha sonra nesnesinin SetLeft konumunu değiştirmek için ve GetLeftCanvas yöntemlerine geri text1 geçirildi.
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;
}
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