我有一个DockPanel,包含一个固定宽度的Label和一个Min和MaxWidth的TextBox。我想将TextBox对齐到左边,让它一直延伸到MaxWidth并让它缩小到MinWidth(例如,如果Window调整大小)就像这样:
面板:
<DockPanel LastChildFill="True">
<Label Content="Fixed Width" DockPanel.Dock="Left" />
<TextBox MinWidth="80" MaxWidth="250" DockPanel.Dock="Left" HorizontalAlignment="Left" />
</DockPanel>
然而,这仅对齐左侧的TextBox。如果我省略HorizontalAlignment它会居中。 我怎样才能实现截图中的内容?
请注意,我不想使用Grid,因为我需要在Label下面的某个位置包装TextBox(我将使用Trigger更改Dock属性来执行此操作)。 / p>
答案 0 :(得分:1)
看一下这个解决方案:https://stackoverflow.com/a/13040678/4625433
您需要将MinWidth="80"
从TextBox移动到LeftStretchPanel。
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<DockPanel LastChildFill="True" Background="Yellow">
<Label Content="Fixed Width" Background="Red" />
<local:LeftStretchPanel MinWidth="80">
<TextBox MaxWidth="250" Background="Blue" />
</local:LeftStretchPanel>
</DockPanel>
</ScrollViewer>