DrawingContext.DrawImage

juergen1969

Grünschnabel
Hallo,
ich möchte in der OnRender(DrawingContext dc) Methode mit Hilfe der DrawImage-Methode (ImageSource, Rect) ein Bild zeichnen. Das Bild ist kein Problem, nur liegen meine Koordinaten für x und y im negativen Bereich.
Sinn und Zweck der Werte ist einfach. Damit kann ich ein Bild vergrößert darstellen und hin- und herschieben.
Nur vergrößert sich das Parent-Control gleich mit, sobald ich ein Image zeichnen will, dass entweder außerhalb liegt (negativ) oder größer ist.

Kann man das automatische Anpassen des Parent-Controls an den Inhalt unterbinden?

Hoffe, das ist einigermaßen rübergekommen,

Jürgen
 
Ok, nochmal eine Erklärung:

Wenn ich ein Control erstelle, welches von UserControl abgeleitet ist, und ich das Bild per Background via ImageBrush anzeige, kann ich mit dem ViewPort meine Position und Dimension angeben. Das funktioniert auch. Nur kann ich dann in meiner OnRender Methode nichts zusätzlich darstellen. Mein Control ändert sich auch nicht in der Größe, was auch so sein soll.

Jürgen
 
Ok, habs rausgefunden.

Code:
ImageBrush brush = new ImageBrush();
brush.ImageSource = Parent.bmSource;
brush.Viewport = new Rect(-x, -y, Parent.ZoomFactor.X, Parent.ZoomFactor.Y);
dc.DrawRectangle(brush, null, new Rect(0, 0, Parent.ActualWidth, Parent.ActualHeight));

Ich muss einen ImageBrush erstellen, dessen ViewPort setzen und dann per DrawRectangle auf die Größe meines Controls anpassen.

Jürgen
 

Neue Beiträge

Zurück