Autor Beitrag
matt951
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 21.08.09 10:30 
hi

ich möchte bei einem doppelklick auf das aktuelle fenster einen kreis an der aktuellen mausposition erstellen.

dazu meine frage.
wie kann ich im quellcode von c# einen kreis auf der anzeige erzeugen?
diesen kreis sollte möchte ich auch anklicken können, sodas ein popup fenster aufgeht. Wie kann ich das realisieren?

wenn ihr nicht versteht was ich meine bzw mehr infos braucht, dann fragt bitte nach. ich bin noch ein anfänger ;)

ich programmiere mit Microsoft Visual c# 2008
matt951 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 24.08.09 09:11 
hat den niemand eine idee?

gruß
matt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 24.08.09 09:31 
Kannst Du einfach ein Objekt der Klasse Ellipse erzeugen? :gruebel:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
matt951 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 24.08.09 09:38 
ja das schon.

aber wie füge ich das dann meinem window hinzu? das hat bei mir nicht geklappt.
habs mit mywindow.AddChild(ellipse) versucht. natürlcih vorher ellipse erstellt und höhe und breite festgelegt. muss ich da erst noch die position festlegen? wahrscheinlich schon. aber wie? hab da nicht gefunden
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 24.08.09 09:49 
Das Window hat doch als Child-Element meist ein Grid. Dem würde ich das hinzufügen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
matt951 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 24.08.09 10:16 
ja aber wie denn?

bei mywindow.win1grid. gibts keine AddChildren(Object object).

sondern nur win1grid.Children.Add(ellipse);
aber da seh ich noch nichts. wahrscheinlcih fehlt noch die angabe der position. wie mach ich das? ich finde keine variable in der ich das angeben kann
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 24.08.09 10:32 
Das hier funktioniert bei mir:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
    private void button1_Click(object sender, RoutedEventArgs e)
    {
      var el = new Ellipse();
      el.Width = 100;
      el.Height = 100;
      el.Stroke = new SolidColorBrush(Colors.Black);

      theGrid.Children.Add(el);
    }


Hast Du vielleicht weder Stroke noch Fill gesetzt?

Die Position der Ellipse bestimmst wie die jedes anderen Elements: HorizontalAlignment und VerticalAlignment setzen, anschließend den Margin.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
matt951 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 24.08.09 10:58 
ja das wirds wohl gewesensein. jetzt hab ich stroke gesetzt und scho gehts ;) Danke

nochmal wegen der position.
mit HorizontalAlignment und VerticalAlignment kann ich doch nur sagen obs oben, unten, rechts oder links ist. stimmts?
ich wills aber an der aktuellen mausposition, dich ich scho gespeichert hab.
also ich muss nur noch den wert irdendwie zuweisen. aber wie??
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 24.08.09 11:12 
user profile iconmatt951 hat folgendes geschrieben Zum zitierten Posting springen:
mit HorizontalAlignment und VerticalAlignment kann ich doch nur sagen obs oben, unten, rechts oder links ist. stimmts?
ich wills aber an der aktuellen mausposition, dich ich scho gespeichert hab.

Mein Satz ging nach den Alignment-Dingern ja auch noch weiter ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
matt951 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 24.08.09 11:39 
ja stimmt danke. es ist zwar etwas getrickst aber es geht ;)

naja fast. ich bekomm grad für meine mauposition ehr zufallswerte. und bei jedem durchlauf sinds die gleichen, bis ich das programm neustarte.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
private void myWindow_MouseDoubleClick(object sender, MouseButtonEventArgs e)

   xPos = e.GetPosition(this).X;
   yPos = e.GetPosition(this).Y;
...
}

geht das nciht so?

Moderiert von user profile iconKha: C#-Tags hinzugefügt
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 24.08.09 23:26 
user profile iconmatt951 hat folgendes geschrieben Zum zitierten Posting springen:
naja fast. ich bekomm grad für meine mauposition ehr zufallswerte. und bei jedem durchlauf sinds die gleichen, bis ich das programm neustarte.
Sind die Punkte so positioniert oder hast du im Debugger die zwei Variablen inspiziert? Wie auch immer, der Fehler dürfte sich hinter dem "..." verstecken ;) .

PS: Keine großartige Verbesserung, aber statt Grid und Margin kannst du auch ein Canvas-Panel benutzen. Und am schönsten ist es, wenn man im Code überhaupt keine Elemente erzeugt, sondern das den DataTemplates überlasst, aber das hat noch Zeit ;) .

_________________
>λ=
matt951 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 26.08.09 08:01 
Danke das funktioniert mittlwerweile