WPF - 在页面上将Horizo​​ntalAlignment设置为Left时的拉伸扩展器

时间:2017-08-11 07:42:00

标签: wpf xaml

所以我想知道在Usercontrol /页面上将Horizo​​ntalAlignment设置为left时,是否可以在页面上拉伸扩展器。

问题是我们不想在扩展器上设置宽度,因为我们希望在调整应用程序大小时调整其大小。我们也不能在扩展器上设置最小宽度,因为我们的应用程序还具有850的最小宽度和1200的正常宽度,并且我们希望扩展器始终延伸到最大尺寸。

代码示例:

<UserControl x:Class="WpfApp1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        d:DesignWidth="1100" HorizontalAlignment="Left">
  <DockPanel>
    <StackPanel>
      <Expander Background="LightBlue"/>
    </StackPanel>
  </DockPanel>
</UserControl>

我们的主要目标是创建类似下图所示的单元,其中单选按钮始终位于右侧,扩展器大小为其可用空间。

http://colinsalmcorner.com/post/parallel-testing-in-a-selenium-grid-with-vsts

3 个答案:

答案 0 :(得分:1)

如果您使用DockPanel,只需将其Dock属性用于子元素,并设置LastChildFill="True"Expander当然应该是最后一个子元素。)

这样的事情:

<DockPanel LastChildFill="True">
     <RadioButton DockPanel.Dock="Right" Content="Active"/>
     <Expander DockPanel.Dock="Left" Header="title1" Background="LightBlue"/>
</DockPanel>

答案 1 :(得分:0)

您可以将HorizontalAlignment设置为使用控件的Stretch吗?

<Window ...>
    <Grid>
        <local:Window1 HorizontalAlignment="Stretch"></local:MainWindow>
    </Grid>
</Window>

local:Window1是您在问题中定义的用户控件)

答案 2 :(得分:0)

我们通过在扩展标头中使用列宽设置为auto和*的网格解决了问题:

  <Grid>
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="auto"/>
          <ColumnDefinition Width="auto"/>
          <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>