Chris
Chris

Reputation: 357

WPF textblock cuts off multiple lines on windows 7

I am using a textblock to display the product description under the product's image. The text must be fixed 100px wide but the height can grow up to 30px tall. If the text still can't fit, it must display ellipsis. Here is my xaml:

<StackPanel>
  <!-- I use canvas here to reserve some space for animation (grow/shrink) -->
  <Canvas Height="75" Width="75">
     <Image x:Name="picture" Height="64" Width="64" .../>
  <Canvas/>
  <TextBlock Width="100" MaxHeight="30" 
        TextTrimming="CharacterEllipsis" TextWrapping="Wrap"
        Text="{Binding Path=ProductDescription}" 
        HorizontalAlignment="Center" VerticalAlignment="Top" TextAlignment="Center">
</StackPanel>

The description can have multiple lines. For eg, "Wireless Mouse\nQuantity:20". It looks ok on XP but on Windows 7 only the first line shows up and there's no ellipsis. Can anyone spot the problem in my xaml?

Upvotes: 2

Views: 1540

Answers (2)

Marc LaFleur
Marc LaFleur

Reputation: 33094

There are several errors in your example: should , ".../>" isn't valid XAML and your TextBlock doesn't have a closing tag.

The follow XAML worked fine on for me on Windows 7:

<StackPanel>  
    <!-- I use canvas here to reserve some space for animation (grow/shrink) -->  
    <Canvas Height="75" Width="75">     
        <Image x:Name="picture" Height="64" Width="64" />  
    </Canvas>

    <TextBlock Width="100" MaxHeight="30"         
        TextTrimming="CharacterEllipsis" TextWrapping="Wrap"        
        Text="I use canvas here to reserve some space for animation (grow/shrink)"         
        HorizontalAlignment="Center" 
        VerticalAlignment="Top" 
        TextAlignment="Center" />       
</StackPanel>

Upvotes: 2

dowhilefor
dowhilefor

Reputation: 11051

Depending on the font size MaxHeight of 30 is almost just one line of text, so the textblock can't grow in height. Change it or remove it completely.

Upvotes: 0

Related Questions