Frage

Ich habe eine TextBlock in einem Grid mit seinem Padding Attribute auf 5.es Manchmal ist das letzte Zeichen abgeschnitten wird, je nachdem, welche Zeichenfolge der Text Eigenschaft auf.

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SomeClass">
    <ScrollViewer Padding="5" VerticalScrollBarVisibility="Auto">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <Label
                Grid.Row="0" Grid.Column="0"
                Content="SomeLabel"
                HorizontalAlignment="Right"
                HorizontalContentAlignment="Right"
                VerticalAlignment="Center" />
            <TextBlock
                Grid.Row="0" Grid.Column="1"
                HorizontalAlignment="Left"
                Padding="5"
                Text="0x0F"
                TextWrapping="Wrap"
                VerticalAlignment="Top" />
        </Grid>
    </ScrollViewer>
</UserControl>

Wenn der Text gesetzt wird, um die 0x0F zu F ist nicht sichtbar. Wenn es gesetzt wird, um die Zeichenfolge 0xAB zeigt ganz gut. Einstellen des Padding auf 0 macht auch die String-Display gut.

War es hilfreich?

Lösung

Was Sie beschreiben, ist offensichtlich ein Layout Bug in WPF (vermutlich im Textblock). Unabhängig davon, ob der letzte Brief gewickelt ist (und abgeschnitten) scheint auf der tatsächlichen Breite der Zeichenfolge und die Größe des letzten Buchstaben in Bezug auf die Größe des Polsters zu abhängig ist.

Ich schlage vor, Sie den Fehler zu melden hier .

Um dieses Problem zu umgehen Sie den folgenden Code verwenden können (Put nur einen Rahmen um Sie die Polsterung dort statt TextBlock- und eingestellt):

<Border Padding="5" Grid.Row="0" Grid.Column="1">
    <TextBlock  HorizontalAlignment="Left"
        Text="0x0F" TextWrapping="Wrap"
        VerticalAlignment="Top" />
</Border>

Andere Tipps

Machen Sie die Spalte des Rasters, die TextBlock- Auto Größe wie diese enthält

<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
  </Grid.ColumnDefinitions>
  <TextBlock Grid.COlumn="0" Text="{Binding Path=SomeViewModelProperty}" />
</Grid>

Wenn Sie die Höhe auf dem Textblock auf 100 gesetzt, wird die F dann gewickelt werden?

erhöhen Sie einfach die Höhe des ComboBoxItem, sollte es das Problem lösen.

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