WPF:按可用宽度展开TextBox,但不按内容展开?

And*_*ita 12 wpf textbox stretch width

我需要一个很好的解决方案,使网格中的TextBox扩展到可用空间,但不会根据文本中的文本长度进行扩展.

我发现的大多数解决方案是制作一个虚拟边框并绑定到它的ActualWidth,但对我来说它是一个hacky解决方案.边界解决方案需要在边界设置一个小的边缘,这是不好的.将其设置为低将导致UI表现得非常奇怪.不喜欢这个解决方案.必须有一个更好的?我想要的是文本框不能随其内容扩展.它不应该那么难.请让我知道如何做到这一点.

编辑:

我注意到的一件奇怪的事情是,以下代码使边框变得更大,然后必须是:

<Grid>
  <Border Name="dummy1" Background="Red" />
  <TextBox Text="23242342343555554234234444444444423423423432344444444" Width="{Binding ActualWidth, ElementName=dummy1}" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

替换边框和文本框顺序使边框很好地适应文本框,但我需要的是相反的.如前所述,将边距(在边框上)设置为至少0.5会使其工作,但结果会有一点麻烦的UI.

Ale*_*tof 2

Horizo​​ntalAlignment=拉伸没有帮助?据我所知,当水平对齐设置为“拉伸”时,网格面板会将其子元素拉伸到单元格中的可用空间。