none
C#/XAML: Schrift auf dem Button um 90° drehen RRS feed

  • Frage

  • Hallo,

    ich suche nach einer "einfachen" Möglichkeit, die Textausrichtung eines Buttons zu verändern.
    Normaler Weise ist die Beschriftung oder der Content eines Button immer waagerecht. Wie kann ich das mit einfachen Mitteln ändern ? Ich wollte den Text vertikal ausrichten, also um 90 grade drehen, aber alles was ich in Foren oder im Internet gefunden habe, waren lange Codes. Das muss doch auch einfach gehen, oder ?

    Danke vorab und viele Grüße

    Michael

    Samstag, 18. Januar 2014 10:04

Antworten

  • Hallo,
    das einfachste ist der Weg über eine Transformation. Dabei wird der Button einen gedrehten TextBlock als Content haben:

    <Button Margin="100" Width="100" Height="200">
        <TextBlock Text="Content" RenderTransformOrigin="0.5,0.5">
            <TextBlock.RenderTransform>
                <CompositeTransform Rotation="-90"/>
            </TextBlock.RenderTransform>
        </TextBlock>
    </Button>

    Die Transformation kannst du außerdem als Resource festlegen:

    <Page.Resources>
        <CompositeTransform Rotation="-90" x:Key="rot90"/>
    </Page.Resources>
    <Button Margin="100" Width="100" Height="200">
        <TextBlock Text="Content" RenderTransformOrigin="0.5,0.5" RenderTransform="{StaticResource rot90}"/>
    </Button>

    Je nach Design des Buttons kannst du natürlich auch gleich diesen drehen. Beim Standardstyle spielt das keine Rolle. Der sieht in jeder Ausrichtung gleich aus.

    Wenn du das häufiger brauchst, lohnt sich vielleicht eine eigene Klasse zu erstellen. Leite diese von Button ab und erstelle dort eine 2. Eigenschaft, welche den Text entgegen nimmt und bei einer Änderung den Text ensprechend in den TextBlock im Button packt. Des weiteren fügst du eine Eigenschaft für die Drehung hinzu.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    • Als Antwort vorgeschlagen Tobias Scholze Montag, 20. Januar 2014 10:06
    • Als Antwort markiert Ciprian Bogdan Dienstag, 21. Januar 2014 16:29
    Samstag, 18. Januar 2014 10:22