2009-09-14 4 views
7

Padding属性が5に設定されています。Textプロパティが設定されている文字列によっては、最後の文字が切り捨てられることがあります。 Text0x0Fに設定されている場合WPF TextBlockパディングがテキストを切り捨てています

<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> 

Fは表示されません。 0xABに設定すると、文字列はうまく表示されます。 Paddingを0に設定すると、文字列の表示もうまく表示されます。

+0

すべてのXAMLを表示する必要があるため、レイアウトロジックに何が問題なのかを確認できます。 –

+0

完全な例を示しました。 –

答えて

6

明らかに、WPF(おそらくTextBlock)のレイアウトバグです。最後の文字が折り返されるかどうかは、文字列の実際の幅と、パディングのサイズに関する最後の文字のサイズに依存するようです。

バグhereを報告することをお勧めします。次のコード(ちょうどあなたの周囲に境界線を入れるテキストブロックし、代わりにそこにパディングを設定)を使用することができますこの問題を回避するには

:ちょうどComboBoxItemの高さを上げる

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

ありがとうございます、私が提案した通りに報告します。 –

+0

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?Feedback=497453 –

0

この

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

私はあなたの提案を試みたが、Fはまだ断ち切っている。 –

+0

うわー、私はあなたのコードを試して、同じ結果を得る、それはFをカットオフこれは0x0bと0x0dしかし、他の16進数が正しく表示されます。 –

0

のようなテキストブロックの自動サイズが含まれているグリッドの列を作り、あなたが100へのTextBlockの上に高さを設定した場合、Fは、その後、ラップを取得しますか?

+0

これは良い推測でしたが、残念ながら私はあなたが示唆したことを試して、Fはラップされませんでした。 –

+0

TextWrapping = "NoWrap"を設定すると問題は解決します。 –

0

を、それが解決する必要があります問題。

関連する問題