WPF Visualizer Визуальный Древовидный холст
холст. Дети. Добавьте, что poly |> игнорируют
Указанный Визуальный
Не думайте, что это 1), не уверено, что 2)?
Используя Visual Studio 2010, F# 2.0, WPF... не XAML
Немного сложно диагностировать проблему без соответствующего примера кода, но, возможно, проблема в том, что вы пытались добавить один и тот же полигон в дочерние элементы холста дважды.
Вот код, который я нарыл, чтобы воспроизвести вашу ошибку:
type SimpleWindow() as this =
inherit Window()
do
let makepoly size corners =
let size = 192.0
let angle = 2.0 * Math.PI / float corners
let getcoords size angle = new Point(size * cos angle, size * sin angle)
let poly = new Polygon(Fill = Brushes.Red)
poly.Points <- new PointCollection([for i in 0..corners-1 -> getcoords size (float i * angle)])
poly
let canvas = new Canvas(HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center)
let poly = makepoly 192.0 5
Canvas.SetLeft(poly, canvas.Width / 2.0)
Canvas.SetTop(poly, canvas.Width / 2.0)
canvas.Children.Add poly |> ignore //this works
this.AddChild canvas |> ignore
SimpleWindow().Show()
Если я добавляю еще один canvas.Children.Add poly
, то происходит сбой с вашим сообщением об ошибке.
canvas.Children.Add poly |> ignore
canvas.Children.Add poly |> ignore //this fails, poly already exists on the canvas
Чтобы исправить ошибку, я сначала вызвал canvas.Children.Remove
, чтобы удалить конкретного ребенка, который присутствовал, чтобы заменить его другим.
canvas.Children.Add poly |> ignore
canvas.Children.Remove poly
canvas.Children.Add poly |> ignore //this works, because the previous version is gone
Надеюсь, это поможет решить вашу проблему.