<textblock text =“Random”width =“*”>给出错误</textblock>

时间:2011-03-30 19:05:10

标签: wpf wpf-controls

我知道对于某些对象,宽度可以指定为width="*",因此宽度尽可能大。但是,当我使用TextBlock尝试它时,它给出了一个错误。

有没有办法指定文本块的宽度尽可能大?

3 个答案:

答案 0 :(得分:4)

"*"仅对网格行/列大小AFAIK有效。你想要HorizontalAlignment="Stretch"

更新:由于您的评论表明您在ListBox中执行此操作,因此您还需要将ListBoxItem的HorizontalContentAlignment设置为"Stretch"。把它放在你的元素中:

  <ListBox ...>
    <ListBox.ItemContainerStyle>
      <Style TargetType="ListBoxItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
      </Style>
    </ListBox.ItemContainerStyle>
  </ListBox>

答案 1 :(得分:0)

只有Grid中的RowDefinition和ColumnDefinition支持“*”语法。您可以在XAML中使用“自动”让它自动确定最佳宽度/高度。或者在代码隐藏中,您可以将宽度/高度指定为double.NaN

答案 2 :(得分:0)

您是否尝试将TextBox放置在自动扩展的面板类型中(即Grid)。有一个相当不错的例子here