Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 文本块在星形宽度的网格中不正确地换行_Silverlight_Textblock_Word Wrap - Fatal编程技术网

Silverlight 文本块在星形宽度的网格中不正确地换行

Silverlight 文本块在星形宽度的网格中不正确地换行,silverlight,textblock,word-wrap,Silverlight,Textblock,Word Wrap,我使用的是一个列表框,项目模板是一个有两列的网格。每列需要占用一半的可用空间 如果其中一列中的文本太大,则需要将其换行 我正在使用以下代码: <ListBox.ItemContainerStyle> <Style TargetType="ListBoxItem"> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> </Style> &l

我使用的是一个列表框,项目模板是一个有两列的网格。每列需要占用一半的可用空间

如果其中一列中的文本太大,则需要将其换行

我正在使用以下代码:

<ListBox.ItemContainerStyle>
    <Style TargetType="ListBoxItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
 </ListBox.ItemContainerStyle>
 <ListBox.ItemTemplate>
     <DataTemplate>
         <Grid>
             <Grid.ColumnDefinitions>
                  <ColumnDefinition Width="1*"/>
                  <ColumnDefinition Width="1*"/>
             </Grid.ColumnDefinitions>
                    <Border Grid.Column="0" BorderBrush="HotPink" BorderThickness="2">
                        <TextBlock Text="{Binding Title}"
                                   FontFamily="Arial" 
                                   FontSize="16"/>
                    </Border>
                    <Border Grid.Column="1" BorderBrush="HotPink" BorderThickness="2">
                        <TextBlock Text="{Binding Description}" 
                                   FontFamily="Arial" 
                                   FontSize="16" 
                                   TextWrapping="Wrap"/>
                    </Border>

                    </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>

当文本不长时,这很好用。如果文本太长,则第二列开始占用尽可能多的空间,然后溢出屏幕

在下图中,我使用了粉红色边框来显示每列的轮廓。


有没有办法让文本包装以这种方式工作?

这是不可能的。您必须实现自己的面板,以确保可用空间始终均匀分布在使用“测量”和“排列”覆盖方法的控件之间。

这是不可能的。您必须实现自己的面板,以确保可用空间始终均匀分布在使用“测量”和“排列”覆盖方法的控件之间。

通过这种方式尝试使用“停靠面板”,您的包装文本块高度可以超过一行。您也可以将LastChildFill设置为true。您的不会换行,因为写入时宽度不固定,因此会因*而拉伸。您也可以使用MaxWidth。然后必须对其进行包装。除此之外,您可以使用AcceptReturn true来接受输入字符。希望这对我有帮助,请小心使用此行为。尝试使用Dock Panel,这样您的包装文本块高度可以超过一行。此外,您还可以将LastChildFill设置为true。您的不会换行,因为写入时宽度不固定,因此会因*而拉伸。您也可以使用MaxWidth。然后必须对其进行包装。除此之外,您可以使用AcceptReturn true来接受输入字符。希望这对我有用,小心使用这种行为。