2012-02-20 56 views
0

我需要将完整的包装文本转换为WPF文本块。条件是我们不知道文本长度以及窗口大小。如何为TextBlock设置正确的包装样式?

的XAML我已经是:

<Border BorderThickness="1" CornerRadius="6" BorderBrush="#FF405DEF" Padding="5" Margin="5"> 
     <StackPanel Orientation="Horizontal"> 
      <Image HorizontalAlignment="Left" Source="{Binding Path=User.ProfileImageUrl}" Width="48" Height="48" 
        Name="UserAvatarImage" Stretch="Fill" VerticalAlignment="Top" /> 
      <StackPanel Margin="5,0,0,5" Orientation="Vertical" Grid.Column="1" HorizontalAlignment="Left" Name="stackPanel1" VerticalAlignment="Top" Width="413"> 
       <StackPanel Orientation="Horizontal" > 
        <StackPanel Orientation="Horizontal" > 
         <TextBlock Name="UserNameTextBlock" Margin="0,0,10,0" Text="{Binding Path=User.Name}" FontWeight="Bold">UserName</TextBlock> 
         <TextBlock Foreground="LightGray" >@</TextBlock> 
         <TextBlock Name="ScreenNameTextBlock" Text="{Binding Path=User.ScreenName}" Foreground="Gray" >ScreenName</TextBlock> 
        </StackPanel> 
       </StackPanel> 
       <StackPanel Orientation="Horizontal" Margin="0,5,0,0"> 
        <Grid > 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="2*" /> 
          <ColumnDefinition Width="2*" /> 
         </Grid.ColumnDefinitions> 
         <TextBlock Margin="0,0,0,0" Foreground="Blue" TextWrapping="Wrap">@ToUserName</TextBlock> 
         <StackPanel Grid.Column="1"> 
          <TextBlock Margin="5,0,0,0" Text="{Binding Path=Text}" MinHeight="20" MinWidth="200" 
             VerticalAlignment="Stretch" TextWrapping="WrapWithOverflow">START skf skdjf skdj hfskdjf ksdjhf ksjdhf ksjhf kjsf kjshf kjshkjfhsdf kjsfdkj hskdfj hskdjf hskdjf skjhfksjfks END</TextBlock> 
         </StackPanel>  
        </Grid> 
       </StackPanel> 
      </StackPanel> 
     </StackPanel> 
    </Border> 

所以,我需要这样的: enter image description here

它是通过硬编码值Width="300"

回答

1

我假设这是关系到your other question有关绑定完成一个控件的MaxWidth到另一个控件的ActualWidth

在你的情况下,我会用Grid替换水平线StackPanel,因为网格会将其子女的大小限制为可用空间,而StackPanel则不会。这样TextBlock将不需要0​​属性集来正确包装。

+0

谢谢瑞秋!你总是帮助我。非常感谢! – 2012-02-20 19:31:41