Frage

Ich habe ein WPF-Label-Steuerelement, die ich versuche, das Aussehen der Verwendung eines System.Drawing.Font Objekts durch einen Legacy-Code geliefert zu ändern. Ich konnte die meisten Eigenschaften setzen, aber mit Gestrichen und Unterstrichen am kämpfen.

Bisher habe ich:

System.Drawing.Font font = FontFromLegacyCode();

System.Windows.Controls.Label label = new System.Windows.Controls.Label();
label.FontFamily = new System.Windows.Media.FontFamily( font.Name );
label.FontWeight = font.Bold ? System.Windows.FontWeights.Bold : System.Windows.FontWeights.Regular;
label.FontStyle = font.Italic ? System.Windows.FontStyles.Italic : System.Windows.FontStyles.Normal;
label.FontSize = font.Size;

Wie stellen Sie die Schrift Ausstreichen oder Eigenschaften unterstreichen? Gibt es eine bessere Kontrolle zu benutzen?

War es hilfreich?

Lösung

Ich würde es auf einen Textblock Steuerung ändern. Die TextBlock- Kontrolle hat die Eigenschaft Textdecorations Sie verwenden können.

<TextBlock Name="textBlock" TextDecorations="Underline, Strikethrough" />

Sie können auch einen Textblock in einem Etikett kleben, wenn Sie wirklich, wie (obwohl ich nur den Textblock selbst verwenden würde).

<Label Name="label">
    <TextBlock Name="textBlock" TextDecorations="Underline, Strikethrough" />
</Label>

Haben Sie einen Blick auf die Textdecorations-Klasse.

Ich finde, dass Textblocks besser geeignet sind als Labels in den meisten Situationen. Hier ist eine Blog-Post über die Unterschiede. Der Hauptunterschied ist, dass ein Label ist eine Kontrolle, während ein Textblock nur ein Framework ist. Auch ein Etikett unterstützt Zugriffsschlüssel.

Andere Tipps

auf den Code der Suche Sie bereits haben, könnte es ein Problem mit ihm sein. Auf der MSDN auf Windows Form und WPF Property Mapping sie machen den Kommentar:

  

Schriftgröße in WPF ist als 1/96 von einem Zoll, und in Windows Forms als 1/72 eines Inch ausgedrückt. Die entsprechende Umwandlung ist:

     

Windows Forms font size = WPF Schriftgröße * 72,0 / 96,0.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top