WPF - 在 StackPanel 中设置 Horizo​​ntalAlignment= 拉伸(stretch)到文本框

标签 wpf stackpanel autosize

为什么文本框不拉伸(stretch)以填充堆栈面板中的空间?这是设计使然吗?在网格中,文本框按预期拉伸(stretch)。

最佳答案

肯特的回答似乎是对的。
为了仍然强制覆盖 StackPanel 行为,我认为您需要动态计算设置包含元素的 Width 属性或 MeasureOverride 的一些时髦覆盖.我宁愿使用另一个布局管理器/面板。我注意到的一些事情..

  • 子元素的 Horizo​​ntalAlignment 和 VerticalAlignment 属性的默认值为 拉伸(stretch) (如果您没有明确指定一个)。
  • StackPanel 将根据其 Orientation 属性值拉伸(stretch)元素。所以
  • Orientation=Horizo​​ntal 表示所有元素将被垂直拉伸(stretch)到最大。元素水平流动。
  • 方向=垂直意味着所有元素将被水平拉伸(stretch)到最大。元素垂直流动。
  • 除非明确指定,否则子元素的宽度和高度均为 NaN。如果您指定一个明确的值,StackPanel 将在水平和垂直对齐设置上使用它们。
  • StackPanel 本身具有 Horizo​​ntalAlignment 和 VerticalAlignment,这增加了进一步的布局扭曲。你可以试试这个example .

  • StackPanel

    The default value is stretch for both HorizontalAlignment and VerticalAlignment of content that is contained in a StackPanel.



    HorizontalAlignment

    When Height and Width properties are explicitly set on an element, these measurements take higher precedent during layout and will cancel the typical effects of setting HorizontalAlignment to Stretch.

    关于WPF - 在 StackPanel 中设置 Horizo​​ntalAlignment= 拉伸(stretch)到文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/405935/

    相关文章:

    c# - TextBlock 内联上的 WPF 触发器

    c# - 如何在类中的类的属性上使用 INotifyPropertyChanged..?

    wpf:获取组合框值

    播放 YouTube 的 C# LibVLCSharp 问题

    c# - 如何使用 UICollectionViewCompositionalLayout 和多种单元格类型创建自动调整大小的单元格?

    jquery - 输入字段在追加时更改大小

    c# - 在网格中显示列表框

    c# - 在 WPF 中,有没有办法制作像 Grid 一样具有对齐列的 StackPanel?

    c# - Stackpanel 中的自动调整大小和居中文本 block

    javascript - Autosize jQuery 插件,触发 autosize.update