यह एक प्रासंगिक कोड नमूना बिना समस्या का निदान करने के लिए थोड़ा मुश्किल है, लेकिन शायद समस्या यह है कि आप एक ही बहुभुज जोड़ने की कोशिश की है कैनवास के बच्चों को दो बार। अगर मैं अपने त्रुटि संदेश के साथ एक और canvas.Children.Add poly
यह दुर्घटनाओं जोड़ने
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()
:
इस कोड मैं burped अपने त्रुटि पुन: पेश करने के लिए है।
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
मुझे आशा है कि यह आपकी समस्या को हल करे।
धन्यवाद सीएफर्न। मैं अब WPF पर थोड़ा और अधिक हूँ। देर से प्रतिक्रिया के लिए क्षमा चाहते हैं ... –