在DockPanel中左对齐并填充空间

时间:2016-04-20 11:18:52

标签: wpf xaml dockpanel

我有一个DockPanel,包含一个固定宽度的Label和一个Min和MaxWidth的TextBox。我想将TextBox对齐到左边,让它一直延伸到MaxWidth并让它缩小到MinWidth(例如,如果Window调整大小)就像这样:

enter image description here

面板:

<DockPanel LastChildFill="True">
   <Label Content="Fixed Width"  DockPanel.Dock="Left" />
   <TextBox MinWidth="80" MaxWidth="250" DockPanel.Dock="Left" HorizontalAlignment="Left" />
 </DockPanel>

然而,这仅对齐左侧的TextBox。如果我省略Horizo​​ntalAlignment它会居中。 我怎样才能实现截图中的内容?

请注意,我不想使用Grid,因为我需要在Label下面的某个位置包装TextBox(我将使用Trigger更改Dock属性来执行此操作)。 / p>

1 个答案:

答案 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>