WPF TextBlock- Padding ist das Abschneiden Text
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.
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.