左对齐并在 DockPanel 中填充 space
Align Left and fill space in DockPanel
我有一个 DockPanel,包含一个具有固定宽度的标签和一个具有 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 它居中。
我怎样才能实现屏幕截图中的效果?
请注意,我不想使用网格,因为我需要将文本框包装在标签下方的某个位置(我将使用触发器来更改 Dock 属性 当前) .
看看这个解决方案:
您需要将 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>
我有一个 DockPanel,包含一个具有固定宽度的标签和一个具有 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 它居中。 我怎样才能实现屏幕截图中的效果?
请注意,我不想使用网格,因为我需要将文本框包装在标签下方的某个位置(我将使用触发器来更改 Dock 属性 当前) .
看看这个解决方案:
您需要将 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>