【问题标题】:QT spacer equivalent in WPFWPF 中的 QT 间隔等效项
【发布时间】:2013-09-09 23:36:48
【问题描述】:

我有一个带有一些垂直对齐控件的 StackPanel(此图片右侧的堆栈面板:

最后一个控件应始终放置在边框控件内的窗口底部(图片上的确定按钮)。在 QT 中,我会插入一个间隔控件来按下按钮。我如何在 WPF 中做到这一点?谢谢你。这是 xaml:

<Window x:Class="Test.MainWindow"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Title="MainWindow" Height="350" Width="525">
    <Grid>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="354*" />
      <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>

    <Border Margin="5" Background="Gray" CornerRadius="6" BorderBrush="Gray">
      <Viewport3D Grid.Column="0" Name="viewport" ClipToBounds="True">
      </Viewport3D>
    </Border>

    <Border Grid.Column="1" CornerRadius="6" BorderBrush="Gray" Background="LightGray" BorderThickness="1" Margin="5" HorizontalAlignment="Left" Name="border1" VerticalAlignment="Stretch" >
      <StackPanel>
        <StackPanel Orientation="Horizontal">
          <Label Content="Dimension" Name="label1" VerticalAlignment="Center" />
          <ComboBox Text="3D" HorizontalAlignment="Right" Name="dimensioncb" VerticalAlignment="Center" IsReadOnly="True" IsEditable="True">
            <ComboBoxItem>2D</ComboBoxItem>
            <ComboBoxItem>3D</ComboBoxItem>
          </ComboBox>
        </StackPanel>
        <Separator/>
        <DockPanel>
          <Label Content="Iteration" Name="label2" VerticalAlignment="Center" />
          <ComboBox Text="3" HorizontalAlignment="Right" Name="iterationcb" VerticalAlignment="Center" IsReadOnly="True" IsEditable="True">
            <ComboBoxItem>1</ComboBoxItem>
            <ComboBoxItem>2</ComboBoxItem>
            <ComboBoxItem>3</ComboBoxItem>
            <ComboBoxItem>4</ComboBoxItem>
            <ComboBoxItem>5</ComboBoxItem>
            <ComboBoxItem>6</ComboBoxItem>
            <ComboBoxItem>7</ComboBoxItem>
            <ComboBoxItem>8</ComboBoxItem>
          </ComboBox>
        </DockPanel>
        <Button Content="OK" VerticalAlignment="Bottom"/>
      </StackPanel>
    </Border>

  </Grid>
</Window>

【问题讨论】:

    标签: xaml stackpanel


    【解决方案1】:

    有很多方法可以在 WPF 中完成。如下图之一:

    <Border Grid.Column="1" CornerRadius="6" BorderBrush="Gray" Background="LightGray" BorderThickness="1" Margin="5" HorizontalAlignment="Left" Name="border1" VerticalAlignment="Stretch" >
      <!--Add a grid control to separate your stackpanel and button-->
      <Grid>
        <Grid.RowDefinitions>
           <RowDefinition Height="*"/>
           <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
      <StackPanel Grid.Row="0">
        <StackPanel Orientation="Horizontal">
          <Label Content="Dimension" Name="label1" VerticalAlignment="Center" />
          <ComboBox Text="3D" HorizontalAlignment="Right" Name="dimensioncb" VerticalAlignment="Center" IsReadOnly="True" IsEditable="True">
            <ComboBoxItem>2D</ComboBoxItem>
            <ComboBoxItem>3D</ComboBoxItem>
          </ComboBox>
        </StackPanel>
        <Separator/>
        <DockPanel>
          <Label Content="Iteration" Name="label2" VerticalAlignment="Center" />
          <ComboBox Text="3" HorizontalAlignment="Right" Name="iterationcb" VerticalAlignment="Center" IsReadOnly="True" IsEditable="True">
            <ComboBoxItem>1</ComboBoxItem>
            <ComboBoxItem>2</ComboBoxItem>
            <ComboBoxItem>3</ComboBoxItem>
            <ComboBoxItem>4</ComboBoxItem>
            <ComboBoxItem>5</ComboBoxItem>
            <ComboBoxItem>6</ComboBoxItem>
            <ComboBoxItem>7</ComboBoxItem>
            <ComboBoxItem>8</ComboBoxItem>
          </ComboBox>
        </DockPanel>
      </StackPanel>
        <Button Grid.Row="1" Content="OK" VerticalAlignment="Bottom"/>
      </Grid>
    </Border>
    

    上面的 XAML,用于替换 XAML 中右侧的 Border 将产生以下结果,并且在调整窗口大小时将按钮保持在底部。

    【讨论】:

      猜你喜欢
      • 2010-10-27
      • 1970-01-01
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-31
      • 1970-01-01
      • 2017-03-14
      相关资源
      最近更新 更多