Newbie
Newbie

Reputation: 1180

C# - Windows Phone - MaxWidth & MaxHeight property being ignored

I have some Canvases in a ListBox. Inside these Canvases I have some TextBlocks which have their text bound to them. However when I try to use a MaxWidth/Height property on the text block (or the standard Height/Width), the properties are ignored! So I end up with the text overspilling the Canvas in cases.

I would much appreciate any help on the matter, and I hope I'm not just being a blind idiot!

Oh, and here's the code (the TextBlock I'm talking about is the first one):

<ListBox Margin="0,-9,-12,0" ItemsSource="{Binding}" Name="listBoxNotes" HorizontalAlignment="Left" VerticalAlignment="Top" Width="400" Height="548">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <Canvas Height="175" Width="360" Background="{StaticResource PhoneAccentBrush}" toolkit:TiltEffect.IsTiltEnabled="True" Name="canvasNote" Tap="canvasNote_Tap">
                    <TextBlock Text="{Binding Title}" FontWeight="Bold" FontSize="26" Foreground="White" Canvas.Left="10" Canvas.Top="5" x:Name="Title" Width="100" MaxWidth="100"/>
                    <TextBlock Text="{Binding Details}" TextWrapping="Wrap" Width="352" FontSize="24" Foreground="White" Canvas.Left="10" Canvas.Top="35" />
                </Canvas>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Upvotes: 0

Views: 490

Answers (1)

Cybermaxs
Cybermaxs

Reputation: 24556

The problem with this is Canvas does not limit the size of their children, and especially theTextBlock control will grow as much as it needs.

Many ways to solve your problem :

  • Do not use TextBlock but a TextBox
  • Do not use Canvas but another container such as Border, Grid, StackPanel...
  • Try to clip the TextBlock content

<TextBlock.Clip> <RectangleGeometry Rect="0, 0, 50, 30"/> </TextBlock.Clip>

Upvotes: 2

Related Questions