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
[GELÖST]Label auf Canvas drehen
Camouflagezebra
myCSharp.de - Member



Dabei seit:
Beiträge: 10
Herkunft: Österreich

Themenstarter:

[GELÖST]Label auf Canvas drehen

beantworten | zitieren | melden

Hallo,

Ich würde gerne ein Label auf meinem Canvas drehen, jedoch weiß ich nicht wie.

Im Internet habe ich nur Beschreibungen gefunden, bei denen ich es explizit in ein Graphic umwandeln muss, was für mich aber nicht gerade vorteilhaft wird, da meine Labels später in XML gespeichert werden und sie deshalb Labels bleiben sollten.

Kann man das auf einer Canvas nicht irgendwie anders drehen?
Freue mich über jede Hilfe!

mfg
zebra
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Camouflagezebra am .
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 6.862
Herkunft: Esslingen

beantworten | zitieren | melden

Hallo,

Per Render- oder LayoutTransform kannst du das problemlos machen.
Zitat
da meine Labels später in XML gespeichert werden
Du solltest die Daten, welche die Labels anzeigen, speichern, aber nie GUI Elemente (geht auch nicht wirklich).
Baka wa shinanakya naoranai.

Mein XING Profil.
private Nachricht | Beiträge des Benutzers
Camouflagezebra
myCSharp.de - Member



Dabei seit:
Beiträge: 10
Herkunft: Österreich

Themenstarter:

beantworten | zitieren | melden

Mache ich es so falsch?

<Measure> 
       <Left>239</Left> 
       <Top>152</Top> 
       <Content><String xmlns="clr-namespace:System;assembly=mscorlib">122</String></Content> 
</Measure>

Left und Top sind für die Koordinaten.



Edit:

talla, danke für die Hilfe!

Ich habe das Problem in 2 Zeilen lösen können.


RotateTransform rotate = new RotateTransform(270);
label.RenderTransform = rotate;

Der einzige Schönheitsfehler den es jetzt noch geben würde, ist dass es sich um die 0,0-Koordinate des Labels dreht.

Wie kann ich sie um den Mittelpunkt des Labels drehen? (Mittelpunkt ist bei jedem Label durch Schriftgröße und Zeichenkette verschieden)

So geht es nicht:


RotateTransform roate = new RotateTransform(270, label.Width / 2, label.Height / 2);



Edit2:

Problem komplett gelöst!


RotateTransform rotate = new RotateTransform(270);
label.RenderTransformOrigin = new Point(0.5, 0.5);
label.RenderTransform = rotate;

Mithilfe von RenderTransformOrigin kann der Mittelpunkt eines Elementes für die Drehung gefunden werden.
Der Point muss für X und Y einen Wert zwischen 0 und 1 haben (Demnach ist 0.5 genau die Hälfte)

Kann geclosed werden. Danke nochmal für die Hilfe, talla :)
Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Camouflagezebra am .
private Nachricht | Beiträge des Benutzers