VisualCollection wird nicht gerendert
-
Hallo, ich habe ein Problem mit einer VisualCollection. Und zwar werden die hinzugefügten Elemente nicht im Canvas angezeigt.
Die Canvas-Klasse schaut in etwa so aus:
class MyCanvas : Canvas { private VisualCollection m_ModelCollection; public MyCanvas() { m_ModelCollection = new VisualCollection(this); } }
Elemente hinzufügen lassen sich folgendermaßen:
protected static void AddNewObject(MyCanvas drawingCanvas, ModelBase modelBase) { modelBase.Clip = new RectangleGeometry(new Rect(0, 0, drawingCanvas.ActualWidth, drawingCanvas.ActualHeight)); drawingCanvas.ModelCollection.Add(modelBase); drawingCanvas.CaptureMouse(); }
Hierbei ist die Klasse ModelBase von DrawingVisual abgeleitet.
Auch das Ausführen von
DrawingVisual dv = new DrawingVisual(); DrawingContext dc = dv.RenderOpen(); dc.DrawLine( new Pen(new SolidColorBrush(Colors.Orange), 1.0), new Point(50, 50), new Point(500, 500)); dc.Close(); m_ModelCollection.Add(dv);
bringt nichts. Was mache ich falsch?
-
Hab den Fehler gefunden. Ich musste den folgenden Code ergänzen:
protected override Visual GetVisualChild(int index) { return m_ModelCollection[index]; } protected override int VisualChildrenCount { get { return m_ModelCollection.Count; } }
Warum auch immer.