Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: WPF ListBox DockPanel , +
Hi
 
I have a problem when using a TextBox with TextWrapping=Wrap which is inside a DataTemplate which is inside a ListBox which is inside a StackPanel.
 
The problem is: when I add new lines to the TextBox, both the ListBox and the StackPanel expand accordingly, but when I remove lines from the TextBox, the ListBox shrinks, but the container StackPanel doesn't shrink (it keeps the same height). That is, the TextBox height causes the DockPanel only to grow.
 
<pre lang="cs"><StackPanel>
   <ListBox>
      <ListBox.Resources>
         <DataTemplate
            <TextBox AcceptsReturn="True" TextWrapping="Wrap" Text="{Binding Path=Text, Mode=TwoWay}" Text="{Binding Path=SomeProperty, Mode=TwoWay}" />
         </DataTemplate>
      </ListBox.Resources>
   </ListBox>
</StackPanel>
 
This seems to be a ListBox/DataTemplate problem. Is it a known bug? Does it have a workaround? (please say "yes"...)
 
Thanks in advance!
Posted 11-Mar-10 9:01am

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

It seems to be, once the window is rendered with the container then we need to again render it.
 
The work around for this would be setting the scroll bar to the textbox
 
<TextBox MinWidth="100" MinHeight="45" MaxWidth="100" MaxHeight="45"
AcceptsReturn="True" TextWrapping="Wrap"
ScrollViewer.CanContentScroll="True"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto"/>
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 295
1 Maciej Los 280
2 Afzaal Ahmad Zeeshan 224
3 BillWoodruff 205
4 Sergey Alexandrovich Kryukov 195
0 OriginalGriff 6,499
1 Sergey Alexandrovich Kryukov 6,048
2 DamithSL 5,193
3 Manas Bhardwaj 4,657
4 Maciej Los 4,120


Advertise | Privacy | Mobile
Web03 | 2.8.1411019.1 | Last Updated 17 Mar 2010
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100