Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Rechteck in OnRender() von System.Controls.Image über Imagesource zeichnen
ByteDevil
myCSharp.de - Member

Avatar #avatar-4066.png


Dabei seit:
Beiträge: 132

Themenstarter:

Rechteck in OnRender() von System.Controls.Image über Imagesource zeichnen

beantworten | zitieren | melden

Hi liebe Community,

ich habe eine Klasse geschrieben die von System.Controls.Image erbt. Dort möchte ich in OnRender einen Rahmen mit der Maus zeichnen (der User soll etwas Selektieren können).

Soweit kein Problem, doch wird mein Rahmen unter dem Bild angezeigt was über die Eigenschaft "Source" zugewiesen wird. Kann ich diesem Control das Verhalten irgendwie abgewöhnen? Vielleicht gibt es eine Layerreihenfolge?
Google konnte mir leider nicht helfen :/

Vielen Dank,
Bytedevil
private Nachricht | Beiträge des Benutzers
pinki
myCSharp.de - Member

Avatar #avatar-4072.jpg


Dabei seit:
Beiträge: 699
Herkunft: OWL

beantworten | zitieren | melden

Hallo ByteDevil,
für die Umsetzung einer solchen Funktion kannst du mal nach Rubberband Adorner suchen.
private Nachricht | Beiträge des Benutzers
ByteDevil
myCSharp.de - Member

Avatar #avatar-4066.png


Dabei seit:
Beiträge: 132

Themenstarter:

beantworten | zitieren | melden

Hallo pinki,

danke für den Hinweiß, aber ich finde hier nur wenige Links in denen es um ein Canvas geht. Kannst du mir vielleicht noch einen genaueren Tipp geben?
Am liebsten wäre mir natürlich eine Methode um die Zeichenreihenfolge des Image-Controlls zu verändern...
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5.299

beantworten | zitieren | melden

vlt. hast du auch nur ein paar Anweisungen in deim Control in falscher Reihenfolge.
Mehr kann ich dazu nicht sagen, denn ich kenne die Anweisungen in deim Control ja nicht.
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers
Spook
myCSharp.de - Member



Dabei seit:
Beiträge: 241
Herkunft: Esslingen a.N.

beantworten | zitieren | melden

Hallo ByteDevil,

dieser Code zeichnet bei mir über das verwendete Bild:

    public class Test : Image
    {
        protected override void OnRender(DrawingContext dc)
        {
            base.OnRender(dc);
            var size = RenderSize;
            dc.DrawRectangle(Brushes.Red, null, new Rect(size.Width / 4, size.Height / 4, size.Width / 2, size.Height / 2));
        }
    }

Grüße
spooky
private Nachricht | Beiträge des Benutzers
ByteDevil
myCSharp.de - Member

Avatar #avatar-4066.png


Dabei seit:
Beiträge: 132

Themenstarter:

beantworten | zitieren | melden

Oh Gott ich schäme mich gerade :D

ErfinderDesRades & Spook ihr habt beide recht. Ich hab base.OnRender() erst nacht meinem Code aufgerufen und natürlich wird dann das Ganze über meinem Rahmen gezeichnet :/

Ich danke euch :)
private Nachricht | Beiträge des Benutzers