Autor Beitrag
Peter1000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60



BeitragVerfasst: Fr 30.01.15 15:10 
Hallo,

ich möchte in ein Rechteck zeichnen, als Schriften und Linie etc.. Diese Rechteck möchte ich dann an beliebiger Stelle im Fenster ausgeben(Canvas).

wie geht das am einfachsten in c#?

THX
rapgru
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17
Erhaltene Danke: 1



BeitragVerfasst: Fr 30.01.15 16:15 
Habe ich dich richtig verstanden? Du willst in ein Rechteck Inhalt füllen, und dann mit Koordinaten wo anders hinplatzieren?

Dann würde ich's mit nem Canvas tun.

ausblenden C#-Quelltext
1:
2:
3:
4:
private void RechteckPlatzieren(double x_coords, double y_coords, Canvas canvas)
        {
            canvas.Margin = new System.Windows.Thickness(x_coords, y_coords, this.Width - (x_coords + canvas1.Width), this.Height - (y_coords + canvas1.Height));
        }

Zu verwenden: (x_coord_tx und y_coord_tx sind zwei Textboxen in die Koordinaten geschrieben werden können; und canvas1 ist das zu verschiebende Canvas)
ausblenden C#-Quelltext
1:
2:
3:
4:
private void button2_Click(object sender, RoutedEventArgs e)
        {
            RechteckPlatzieren(Convert.ToDouble(x_coord_tx.Text), Convert.ToDouble(y_coord_tx.Text), canvas1);
        }


Funktioniert bei mir in WPF sehr gut, wenn es bei dir den Fehler ausgibt, dass Margin nicht im Kontext vorhanden ist dann bitte melden!

LG
rapgru,
hoffe die Frage ist damit geklärt

Für diesen Beitrag haben gedankt: Peter1000
Peter1000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60



BeitragVerfasst: Fr 30.01.15 16:29 
Plazieren ist soweit klar, danke.
Nur wie schreibe ich was in das Rechteck? Wie ich Z.B. Text in den Canvas schreibe weiß ich, es geht darum wie ich Text, Linien etc. in das Rechteck schreibe.

Moderiert von user profile iconTh69: Vollzitat entfernt.
rapgru
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17
Erhaltene Danke: 1



BeitragVerfasst: Fr 30.01.15 19:06 
Soll das "schreiben" vom Benutzer ausgehen oder schon vordefiniert sein?
Peter1000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60



BeitragVerfasst: Sa 31.01.15 14:29 
user profile iconrapgru hat folgendes geschrieben Zum zitierten Posting springen:
Soll das "schreiben" vom Benutzer ausgehen oder schon vordefiniert sein?


Sowohl schon vorher , aber auch während der Laufzeit.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 31.01.15 15:40 
Hallo Peter,

was für eine Art von Programm soll das werden - so etwas wie ein Diagram Designer?
Gerade auf CodeProject gibt es viele Artikel zu WPF, z.B. MVVM Diagram Designer

Oder die Artikelserie "WPF Diagram Designer": Part 1, Part 2, Part 3, Part 4

Zu deiner konkreten Frage bzgl. "Schreiben in ein Rechteck" würde ich ein CustomControl erzeugen, welches selber ein Canvas ist (oder beinhaltet) und dann darauf zeichnen und dann dieses CustomControl dann wiederum auf dem Haupt-Canvas zeichnen (quasi verschachtelte Canvas).

Hier noch ein paar weitere Links zu CustomControls:
The differences between CustomControls and UserControls
How to create a Custom Control
Create a WPF Custom Control, Part 1
Create a WPF Custom Control, Part 2

Die geometrischen Objekt befinden sich im Namensbereich System.Windows.Shape, welche dann zum Zeichnen benutzt werden können, s. z.B.:
Shapes and Custom Drawing in WPF/Silverlight
WPF Arrow and Custom Shapes

Für diesen Beitrag haben gedankt: Peter1000
Peter1000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60



BeitragVerfasst: Di 03.02.15 10:13 
Hallo,

also ich habs jetzt einfach mit Canvas in Canvas in XAML gemacht. funktioniert einwandfrei.
Danke.