如何在windows phone开发中不定义宽度的情况下使用Textwrap 属性?
How to use Textwrap property without defining the width in windows phone development?
我正在使用单行网格。我在该行中放置了一个 LongListSelector。 ItemTemplate如下,
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<!--when we dont mention any of the height and width properties then control tries to first occupy the minimum height/width required and then it streches to the extent it is possible-->
<phone:LongListSelector Grid.Row="0" x:Name="CLASS1">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="25,20" Background="#FF616464" Width="Auto">
<TextBlock Text="{Binding title, Mode=TwoWay}" FontSize="40" Margin="20,20" Foreground="White" TextAlignment="Left" TextWrapping="Wrap" FontStyle="Normal" FontFamily="Segoe UI"/>
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
</Grid>
现在我知道,如果我们不在 XAML 文件或属性中提及 width、MaxWidth 值,上面的文本块将自行拉伸到它真正需要适合文本的宽度.如果还有更多宽度剩余,它将扩展到那个程度。但是我想包装文本块的文本。同时我想利用所有可用的宽度来拉伸 TextBlock。所以基本上我希望 Textblock 使用可用的最大宽度自行拉伸,如果其中的文本仍然更长,那么我想将它包裹起来。有什么解决方案可以实现这一目标。我可以通过为宽度设置常量值来使用文本换行。因为我想在不同的模型上部署这个应用程序,所以我可以让它通用吗?有没有办法使用parent的宽度?
您所要做的就是将 StackPanel
替换为 Grid
。
<DataTemplate>
<Grid Margin="25,20" Background="#FF616464" Width="Auto">
<TextBlock Text="{Binding title, Mode=TwoWay}" FontSize="40" Margin="20,20" Foreground="White" TextAlignment="Left" TextWrapping="Wrap" FontStyle="Normal" FontFamily="Segoe UI"/>
</Grid>
</DataTemplate>
结果:
试试这个 属性
HorizontalContentAlignment="Stretch"
我正在使用单行网格。我在该行中放置了一个 LongListSelector。 ItemTemplate如下,
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<!--when we dont mention any of the height and width properties then control tries to first occupy the minimum height/width required and then it streches to the extent it is possible-->
<phone:LongListSelector Grid.Row="0" x:Name="CLASS1">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="25,20" Background="#FF616464" Width="Auto">
<TextBlock Text="{Binding title, Mode=TwoWay}" FontSize="40" Margin="20,20" Foreground="White" TextAlignment="Left" TextWrapping="Wrap" FontStyle="Normal" FontFamily="Segoe UI"/>
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
</Grid>
现在我知道,如果我们不在 XAML 文件或属性中提及 width、MaxWidth 值,上面的文本块将自行拉伸到它真正需要适合文本的宽度.如果还有更多宽度剩余,它将扩展到那个程度。但是我想包装文本块的文本。同时我想利用所有可用的宽度来拉伸 TextBlock。所以基本上我希望 Textblock 使用可用的最大宽度自行拉伸,如果其中的文本仍然更长,那么我想将它包裹起来。有什么解决方案可以实现这一目标。我可以通过为宽度设置常量值来使用文本换行。因为我想在不同的模型上部署这个应用程序,所以我可以让它通用吗?有没有办法使用parent的宽度?
您所要做的就是将 StackPanel
替换为 Grid
。
<DataTemplate>
<Grid Margin="25,20" Background="#FF616464" Width="Auto">
<TextBlock Text="{Binding title, Mode=TwoWay}" FontSize="40" Margin="20,20" Foreground="White" TextAlignment="Left" TextWrapping="Wrap" FontStyle="Normal" FontFamily="Segoe UI"/>
</Grid>
</DataTemplate>
结果:
试试这个 属性 HorizontalContentAlignment="Stretch"