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
Hallo,
Per Render- oder LayoutTransform kannst du das problemlos machen.
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.
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 😃