Canvas mit Problem

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von hlghyr.

    Canvas mit Problem

    Hallo Forum!
    Kann mir folgendes Problem nicht erklären.
    Siehe Bild!
    Das Canvas liegt in einen Grid.

    VB.NET-Quellcode

    1. <Canvas Margin="0" Name="Canvas1" Background="#FFEFECDF" />

    Und bei Buttonclick wird folgende Sub aufgerufen.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
    2. Dim PunktQuery As ObjectQuery(Of NurPunkt.Punkt) = Me.GetPunktQuery(NurPunktEntities)
    3. For Each wert In PunktQuery
    4. Dim punkt1 As Point
    5. Dim punkt2 As Point
    6. punkt1.X = wert.X
    7. punkt1.Y = wert.Y
    8. PunktZeichnen(punkt1, "versuch")
    9. If punkt2.X > 0 And punkt2.Y > 0 Then
    10. Dim linie As New Line
    11. linie.Stroke = Brushes.Black
    12. linie.X1 = punkt1.X
    13. linie.Y1 = punkt1.Y
    14. linie.X2 = punkt2.X
    15. linie.Y2 = punkt2.Y
    16. linie.StrokeThickness = 1
    17. Canvas1.Children.Add(linie)
    18. End If
    19. punkt2 = punkt1
    20. Next
    21. End Sub
    22. Private Sub PunktZeichnen(point As Point, ByVal name As String)
    23. Dim punkt As New Ellipse
    24. punkt.Height = 10
    25. punkt.Width = 10
    26. punkt.Stroke = Brushes.Black
    27. punkt.Fill = Brushes.Blue
    28. punkt.Name = "P" & name
    29. Canvas.SetLeft(punkt, point.X - 5)
    30. Canvas.SetTop(punkt, point.Y - 5)
    31. Canvas1.Children.Add(punkt)
    32. End Sub


    Warum werden die Punkte auch außerhalb des Canvas gezeichnet?
    Ich hoffe mir kann da einer ein Licht anmachen.

    Hinweis! Es sind nur Codeausschnitte!
    MfG
    hlghyr
    Bilder
    • nurpunkt.jpg

      250,86 kB, 695×423, 99 mal angesehen
    1. Weil ich die Punkte eindeutig den in einer bestimmten Größe definierten Canvas hinzufüge.
    2.Weil die Punkte die sich außerhalb des Canvas befinden, gleichzeitig in einer anderen Gridspalte sind und dann, wenn man die Punkte mit X,Y positionieren könnte sich an anderer Position befinden müssten.
    Eigentlich hatte ich mit einer Fehlermeldung gerechnet, die mich darauf hinweist, das die Punkte sich nicht mehr auf den Canvas befinden.

    MfG hlghyr
    tja, wpf-Controls können ihre eingeschachtelten Controls auch ausserhalb ihrer eigenen Begrenzung darstellen.

    Aber vor einiger Zeit hatte ich eine Einstellung gefunden, die konnte man auf false setzen, und dann ging das innere Control nicht übern Rand.
    Aber ich weiß nicht mehr, wie die Einstellung hieß :(