Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här exemplet visar hur du använder positioneringsmetoderna för Canvas-elementet för att placera underliggande innehåll. I det här exemplet används innehåll i en ListBoxItem för att representera positioneringsvärden och konverterar värdena till instanser av Double, vilket är ett obligatoriskt argument för positionering. Värdena konverteras sedan tillbaka till strängar och visas som text i ett TextBlock element med hjälp av metoden GetLeft.
Exempel
I följande exempel skapas ett ListBox element som har elva valbara ListBoxItem element. Händelsen SelectionChanged utlöser den ChangeLeft anpassade metoden, som det efterföljande kodblocket definierar.
Varje ListBoxItem representerar ett Double värde, vilket är ett av argumenten som SetLeft metod för Canvas accepterar. Om du vill använda en ListBoxItem för att representera en instans av Doublemåste du först konvertera ListBoxItem till rätt datatyp.
<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>
När en användare ändrar markeringen ListBox anropas den ChangeLeft anpassade metoden. Den här metoden skickar ListBoxItem till ett LengthConverter-objekt som konverterar Content för en ListBoxItem till en instans av Double (observera att det här värdet redan har konverterats till en String med hjälp av metoden ToString). Det här värdet skickas sedan tillbaka till SetLeft och GetLeft metoder för Canvas för att ändra positionen för det text1 objektet.
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
Se även
- Canvas
 - ListBoxItem
 - LengthConverter
 - Översikt över paneler
 
.NET Desktop feedback