Unterschiedliche Schriftgrößen Durch Handhabung Um Eigenschaften von Anzeige in einem WPF-App?

StackOverflow https://stackoverflow.com/questions/811217

  •  03-07-2019
  •  | 
  •  

Frage

Meine Fraktion ist der Aufbau eines Editor-Typ app in WPF. Eine Sache, die wir bemerkte, dass auf meiner WinXP Maschine, läuft mit dem „Fenster im klassischen Stil“ Thema, der Text auf Tasten ist paßt gut. Doch auf der Maschine meines Freundes, der mit dem „Windows XP-Stil“ Thema läuft, ist die Schriftgröße größer, so Text auf Schaltflächen am unteren Rande abgeschnitten wird.

Gibt es eine Möglichkeit, dies gut zu handhaben, wie automatisch steuert die Größe des Text passen?

Ich zögere manuell auf die Schaltfläche Ändern der Größe sein Layout paßt, wie jede andere ganz andere Einstellungen durch die Eigenschaften von Anzeige und Zugangsmöglichkeiten haben.

Danke!

War es hilfreich?

Lösung

Eine WPF-Taste wird Größe automatisch an den Inhalt passen, die es gegeben hat, aber es wird dies nur dann tun, wenn es in einem Container, die nicht Größe und seine Größe nicht festgelegt hat erzwingt worden manuell. Um dieses Durcheinander unter Beweis stellen, um mit der Schriftgröße im folgenden Code-Snippet:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Button
        Grid.Column="1"
        Grid.Row="1"
        FontSize="24"
        Content="QWERTY"/>
</Grid> 

Ich denke, dass Ihre Tasten nicht geändert haben, weil Sie sie gezwungen haben. Um dies zu beheben müssen Sie entscheiden, wie Sie sie ändern möchten (das kann sehr kompliziert sein, wenn Elemente überlappen würden, wenn sie nur blind wuchs) und wenn keines der mitgelieferten Paneeltypen das Wachstumsverhalten durchführen, die Sie suchen, dann können Sie benötigen schreiben Sie Ihre eigenen, das tut.

Andere Tipps

Haben Sie fest codierte Elementgrößen mit Breite und Höhe Eigenschaften? In WPF der empfohlene Weg, dies zu tun ist, die mehr Layout-Container zu verwenden.

Das folgende ist ein Beispiel eines Gitters, die zwei Tasten unten legt und ein Textfeld am oberen Rand.

<Grid>
    <Grid.RowDefinitions>
        <!-- TextBox row with unspecified height. -->
        <RowDefinition Height="*"/>

        <!-- Button row with automated height so it resizes to
             fit the content -->
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <!-- Textbox on first row. -->
    <TextBox Margin="3" Name="textBox1" Grid.Row="0" AcceptsReturn="True" />

    <!-- StackPanel which lays the two buttons at the bottom horizontally.
         RightToLeft is specified so that the first button appears on right.
         -->
    <StackPanel Grid.Row="1" HorizontalAlignment="Right"
                Orientation="Horizontal" FlowDirection="RightToLeft">

        <!-- The buttons. Only padding and margin are hardcoded so these
             can resize to the contents -->
        <Button Padding="3" Margin="3">OK</Button>
        <Button Padding="3" Margin="3">Cancel</Button>
    </StackPanel>
</Grid>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top