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
Linie wie bei einem Bildbearbeitungsprogramm
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

Linie wie bei einem Bildbearbeitungsprogramm

beantworten | zitieren | melden

Hallo Forum,

Ich denke jeder kennt diese linien bei Bildbearbeitungsprogrammen: Man kann sie auf ein Bild legen, wenn man die Maus über die Enden fährt, kommt ein Cursor zur Veränderung der Position des Punktes bzw der Länge und wenn man über die Linie fährt kommt ein Cursor zum Verschieben der ganzen Linie.

Hat jemand ne Ahnung, wie man sowas macht? Ich hab nämlich überhaupt keine. Ich muss wirklich wissen, wie man das MACHT. Eine Bibliothek in der sowas ist hilft mir nicht sooo viel, weil ich das noch meinen Bedürfnissen anpassen muss.

So weit, so gut. Ich freue mich über jede Antwort!
Grüße progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
S.H.-Teichhof
myCSharp.de - Member

Avatar #avatar-2460.jpg


Dabei seit:
Beiträge: 1.549
Herkunft: Sindringen

beantworten | zitieren | melden

unter https://www.microsoft.com/germany/msdn/webcasts/bisherige.mspx findest du eine reihe von Webcasts die sich mit GDI+ befassen. müsste dir eigendlich helfen
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Hallo S.H.-Teichhof,

Erstmal danke für deine Antwort.
Kannst du mir noch was genaueres sagen? Ich weiß nämlich gar nicht, nach was ich suchen soll. Es geht auch von der Zeit her nicht, dass ich mir alle einzelnen Webcasts anschaue. Wie ich eine Linie zeichne weiß ich schon. Ich habe schon einiges mit GDI+ programmiert.
Mein Problem: Ich weiß nicht, wie ich mache, dass ich MouseEvents bei der Linie bekomme. Mehr Probleme fallen mir im Moment nicht ein, wird sich aber ändern wenn ich erstmal anfange

Danke soweit,
progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

ich hatte mal ein einfaches Beispiel gepostet. Das wirft ein Ereignis wenn man über ein Drawobject mit der Maus fährt(im Bsp. sinds Linien). Code zum Verschieben und so weiter hinzuzufügen ist nur noch Fleissarbeit(btw für versch. Objecte Linien Ellipsen usw am besten via Interface).

DrawLine MouseDown Event?
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Hallo ikaros,

Vielen, vielen Dank für deine Antwort! Das hilft mir echt weiter. ich habs mir noch nicht genau angeschaut, sondern nur mal überflogen, sieht aber echt nach dem aus, was ich brauch. Wenn ich noch irgendwelche Fragen haben sollte, melde ich mich wieder.
Eine Frage, die mir gleich einfällt: Ist es nicht sehr auslastend für den PC, wenn ich für jedes dierser Objekte das MouseMove-Event des Parents abonnieren muss? Ich wüsste zumindest nicht wie ich es anders machen soll, dass ich ein MouseMove bzw. MouseDown Event für das Objekt auslösen soll.

Gruß progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

Performanceprobleme ergeben sich tatsächlich bei sehr vielen Objekten, wenn bei jeder Mausbewegung überprüft wird welches Objekt darunter liegt. Sehe ich aber nicht so als Problem an, da in einem Zeichenprogramm normalerweise erst selektiert wird(Mouseklick), weiterhin wird bei sehr komplexen Zeichnungen auch mit Leveln gearbeitet. Probleme ergeben sich aber beim Verschieben(Neuzeichnung der Objekte(komplexere Grafiken mit Filtern/Farbverläufen und höherwertigen Transparenzverläufen(2.e Matrix) etc). Lässt sich aber auch in den Griff kriegen(da ja nicht jedes Objekt verändert wird, kann man einen Backgroundbuffer implementieren, und die zu refreshenden Bereiche eingrenzen. Es ist auch durchaus üblich beim Verschieben etc. nur eine vereinfachte Darstellung anzuzeigen. Die Neuberechnung aller(betroffenen) Objekte erfolgt dann am Schluss.
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Hallo ikaros,

Nochmal vielen Dank für deine Hilfe! Ich habe noch was dazu zu sagen:
1. Das programm wird KEIN Bildbearbeitungsprogramm. Die Fläche auf der die Linien usw. sind ist einfarbig, also die Probleme, die du beim Neuzeichnen erwartest, treten nicht so ein.
2. Wie kann ich machen, dass es so wie ein Control behandelt wird? Geht das überhaupt? Ich hätte halt gerne, dass man über Controls.Add(...) und über den Form-Designer eine Linie einer Form oder so hinzufügen kann.

progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo progger,

wenn es sehr wenige Objekte (also Linien u.ä) sind, könntest du vielleicht transparente PictureBoxen verwenden.

herbivore
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Danke für deine Antwort, herbivore.
Was sind für dich sehr wenige Objekte?
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo progger,

ich würde mal sagen so 10-20

herbivore
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Dann mach ichs, glaub ich, doch anders. Oder gibt es noch ne andere Möglichkeit als mit den Pictureboxen?
Zitat
Performanceprobleme ergeben sich tatsächlich bei sehr vielen Objekten, wenn bei jeder Mausbewegung überprüft wird welches Objekt darunter liegt.
Kann mir wer sagen, was hier "sehr viele" Objekte sind?
Vielen, vielen Dank soweit!
Gruß
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

Sieht aus als würdest du ein Control für Linien benötigen(also ein anderer Schwerpunkt).

Ein LineControl könnte ungefähr so aussehen:
Attachments
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Das sieht schön aus! Vielen, vielen Dank.
Ich werde mal schaun, ob ich das meinem Bedarf anpassen kann.
Gruß progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Hallo nochmal,

Ich habs mir jetzt ein bisschen genauer angeschaut. Das ist genau das was ich suche!
Eine Frage hab ich noch: Wie mache ich eine Ellipse, die nicht gefüllt ist? ich habs jetzt mit GraphicsPath.AddEllipse() gemacht, da kann man aber im Gegensatz zu Graphics.DrawEllipse() nur gefüllte Ellipsen machen. Geht das irgendwie, dass ich noch den inneren Bereich festlegen kann?

Gruß und 1000 Dank, progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Ich habs jetzt geschafft! Fragt mich aber bitte nicht wie ich drauf gekommen bin
Ich habe es so geschrieben:

GraphicsPath gp = new GraphicsPath();
GraphicsPath gp2 = new GraphicsPath();
Rectangle rect=new Rectangle(0,0,this.Width,this.Height);
Rectangle rect2=new Rectangle(2,2,this.Width-4,this.Height-4);

gp.AddEllipse(rect);
gp2.AddEllipse(rect2);
gp.AddPath(gp2,false);
this.Region = new Region(gp);
Kann mir bitte noch wer sagen, ob das richtig ist bzw ob es etwas einfacheres/besseres gibt, danke.
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

Wie bist du darauf gekommen?
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Halo nochmal,

Ich bin jetzt auf einen kleinen Schönheitsfehler gestoßen:
Je nach dem Winkel der Linie ist sie unterschiedlich breit. Kann man irgendwie machen, dass sie immer gleich breit ist?
Noch was:
Wie mache ich am geschicktesten die Änderung der 2 Punkte? Ich würde überprüfen, ob die Maus am Rand der Linie ist. Wenn ja, wird die Linie nicht verschoben, sondern der Punkt, sodass die Linie länger/kürzer wird bzw. der Punkt sich ändert.

Ich freue mich über jede weitere Antwort!
Gruß, progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

Zitat
Original von progger
Halo nochmal,
Zitat
Ich bin jetzt auf einen kleinen Schönheitsfehler gestoßen:
Je nach dem Winkel der Linie ist sie unterschiedlich breit. Kann man irgendwie machen, dass sie immer gleich breit ist?
Ja, eine echte Linie zeichnen(ist auch besser für verschiedene Stile und Breiten). Den Selektionsbereich vergrössern(sieht bei Überlappungengen nicht gut aus, da keine echte Transparenz bei Controls) oder Punktweise errechnen(aus LinienMaske).
Zitat
Noch was:
Wie mache ich am geschicktesten die Änderung der 2 Punkte? Ich würde überprüfen, ob die Maus am Rand der Linie ist. Wenn ja, wird die Linie nicht verschoben, sondern der Punkt, sodass die Linie länger/kürzer wird bzw. der Punkt sich ändert.
Beim Selektieren der Linie(markieren) würde ich 2 Endpunkte anzeigen, die beim Klicken und Ziehen das Control anpassen.

Ich freue mich über jede weitere Antwort!
Gruß, progger

Ich persönlich würde es nicht über Controls lösen, da derartige Lösungen beim Ansteigen von Anforderungen zu unflexibel sind(im graf. Bereich).
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Hallo ikaros,

Wie würdest du es dann lösen? Mit deiner ersten Lösung, vermutlich. Das ist mir wiederum zu unflexibel (vielleicht kenn ichs auch nur nicht gut genug). Ich steh dann wieder vor diesem Problem:
Zitat
Eine Frage, die mir gleich einfällt: Ist es nicht sehr auslastend für den PC, wenn ich für jedes dierser Objekte das MouseMove-Event des Parents abonnieren muss? Ich wüsste zumindest nicht wie ich es anders machen soll, dass ich ein MouseMove bzw. MouseDown Event für das Objekt auslösen soll.
Das wäre mit einem Control gelöst. Kannst du bitte auch mal sagen, was wann besser ist und wie du das mit der Unflexibilität genau meintest.

Vielen, vielen Dank soweit,
progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo progger,

ich denke mal mit Unflexibilität ist gemeint, dass die Anzahl von Control stark beschränkt ist. Es gibt zum einen eine feste Grenze von 16k oder 64k Controls für alle Fenster zusammen und dann noch eine "Grenze" von vielleicht 500-1000 Controls ab der eine Anwendung sehr träge wird.

herbivore
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

Zitat
Original von progger
Hallo ikaros,

Wie würdest du es dann lösen? Mit deiner ersten Lösung, vermutlich. Das ist mir wiederum zu unflexibel (vielleicht kenn ichs auch nur nicht gut genug). Ich steh dann wieder vor diesem Problem:
Zitat
Eine Frage, die mir gleich einfällt: Ist es nicht sehr auslastend für den PC, wenn ich für jedes dierser Objekte das MouseMove-Event des Parents abonnieren muss? Ich wüsste zumindest nicht wie ich es anders machen soll, dass ich ein MouseMove bzw. MouseDown Event für das Objekt auslösen soll.
Das wäre mit einem Control gelöst. Kannst du bitte auch mal sagen, was wann besser ist und wie du das mit der Unflexibilität genau meintest.

Vielen, vielen Dank soweit,
progger

Ja persönlich ziehe ich die erste Lösung vor.
Wegen:
ich hatte mal einen Layouteditor(Drucklayouts für spezielle Hardware und sehr DB-Lastig) implementiert(mit Controls erst Pictureboxen, dann Umstieg auf Labels(Labels stellen sich manchmal als flexibler heraus)), dann kamen weitere Anforderungen hinzu und ich konnte 2 Wochen investieren zum Umstieg auf die rein graf. Lösung(allerdings hätte ich das gleich tun können, wenn ich die Zeit bekommen hätte, war aber kein Thema das gesamte Projekt wurde sehr sportlich angegangen). Dafür bekam ich (dann)auch die Zeit(Nach stundenlangen Meetings(die Zeit hätte ich gern anders genutzt) inkl Vorbereitung)
Die zusätzlichen Anforderungen hätten sich auch mit Controls lösen lassen(Echte Transparenz und farblich markierte Überlappungen von Elementen(es geht, aber Aufwand von Implementierung und Rechenaufwand steigen, eine eigene graf. Renderengine ist flexibler)
PC-Auslastung:
Nein, nicht wirklich(Wenn sich das BS drum kümmert heisst das nicht, dass Eigenimplementationen langsamer sind(Die Ereignisse von Controls müssen ja auch behandelt werden)
Flexibilität:
Siehe die Aussagen von Herbivore. Weiterhin können weitere Anforderungen hinzu kommen, die Controls einfach nicht leisten können. Bzw. wird die Abhängigkeit zur Implementation des containers immer grösser(wirst du selbst feststellen, auch wenn die Anwendung im Endeffekt simpel bleibt.

Der Vorteil von Controls besteht in ihrer fertigen Implementation(man muss sie nur benutzen, bis die Grenzen immer schwieriger zu überwinden sind). Der Vorteil von Grafischen Objekten besteht in höherer Flexibilität(und höheren Anfangsaufwand).
Zugegeben war das Beispiel sehr einfach, es ist aber auch einfach zu erweitern. Spätestens bei Transparenz oder Abhängigkeiten untereinander(Linie ist Verbinder zu Element(Schaltkreiseingang oder Klassenkomposition),sollte man drüber nachdenken.
Es kann natürlich sein das, für die Anforderung deiner Anwendung, Controls mehr als aussreichend sind.
Ich nehme mir auch gern die Zeit ein einfaches Beispiel für das Vergrössern/verkleinern/verschieben(ein Abwasch) von LineControls(anhand der geposteten Klasse) zu posten. Das aber nur wenn gewünscht und frühestens am WE. Die Sache mit der Darstellung bei unterschiedlichen Winkeln überlasse ich vorläufig deiner Fantasie(Hinweise gab ich).
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Danke für eure Hilfe!
Ich werde mich jetzt mal ein bisschen mit der rein grafischen Lösung beschäftigen. Ich würde mich aber trotzdem über ein Beispiel von dir freuen, ikaros. Damit ich seh wie du das löst.
Gruß progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

*hochschieb*
Und ich möchte auch ikaros an sein Vorhaben erinnern. Aber nur, wenn du Zeit hast, natürlich! Ich freu mich schon drauf
Gruß progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

Hab das WE anders verbracht, aber ich vergess es nicht. Versprochen.
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Schon in Ordnung. Ich freu mich weiter drauf (Vorfreude ist die schönste Freude :D).
progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

*erneut hochschieb*
Es ist wieder WE, nur eine klitzekleine Erinnerung
progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Hallo zusammen,

Ich habe jetzt zwei Probleme:
1. Um einen Punkt zu machen, nehme ich eine Ellipse. Mein Problem ist, wenn ich GraphicsPath.AddEllipse(..) mache, zählt der nur den Rand der Ellipse. Sprich das mit dem MouseEvent (beachte Bsp. von ikaros DrawLine MouseDown Event) klappt nur am Rand des Punktes. Weiß da jemand ne Möglichkeit? Ich bräuchte ne GraphicsPath.AddFilledEllipse-Methde, die gibts aber nicht
2. Auch mit den MouseEvents. Wenn ich das Graphics-Objekt mit .PageUnit und .PageScale verändert hab funktionierts auch nicht mehr gescheit. Weiß da wer ne Möglichkeit, wie das korrekt funktioniert?
Ich freu mich über jede weitere Antwort.

Gruß,
progger
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo progger,

Teilantwort:

Ich habe mich schon oben gefragt, warum du GraphicsPath.AddEllipse und nicht Graphics.DrawEllipse benutzt. Dann ist nämlich auch der Weg zu Graphics.FillEllipse nicht mehr weit.

herbivore
private Nachricht | Beiträge des Benutzers
progger
myCSharp.de - Member

Avatar #avatar-2094.gif


Dabei seit:
Beiträge: 1.271
Herkunft: Nähe von München

Themenstarter:

beantworten | zitieren | melden

Weil ich das brauch um festzustellen, ob die Maus über dem Punkt ist. Beim zeichnen nehm ich auch Graphics.FillEllipse. GrraphicsPath hat das aber nicht
A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo progger,

dann müsste Graphics.FillPath das sein, was du suchst.

herbivore
private Nachricht | Beiträge des Benutzers