11

WPF 新手,在线学习教程,有几个问题:

(1) 我试图让多个不同宽度的按钮并排出现在一个 WPF 网格单元中。然而,它们似乎总是相互叠加。我错过了什么?

(2) 是否可以控制网格单元内每个按钮的绝对起始左侧位置?

谢谢。

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<ScrollViewer>
    <Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          ShowGridLines ="True" >
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="60*" />
        </Grid.ColumnDefinitions>

        <Button Content="Button No. 1" Grid.Row="0" Grid.Column="0" />

        <GridSplitter HorizontalAlignment="Center" Width="6"
                      Grid.Row="0" Grid.Column="1" Grid.RowSpan="3" />

        <Button Content="Button No. 4-2" Grid.Row="0" Grid.Column="2" Width="100" />
        <Button Content="Button No. 4-1" Grid.Row="0" Grid.Column="2" Width="50" />

    </Grid>
</ScrollViewer>
</Page>

根据萨尔瓦多的回答,这有效:

        <Button VerticalAlignment="Top" HorizontalAlignment="Left" Content="Button No. 1" Grid.Row="0" Grid.Column="0" Height="100"/>

        <GridSplitter HorizontalAlignment="Center" Width="6"
                      Grid.Row="0" Grid.Column="1" Grid.RowSpan="3" />

        <Button VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0" Content="Button No. 4-2" Grid.Row="0" Grid.Column="2" Height="100" Width="100" />
        <Button VerticalAlignment="Top" HorizontalAlignment="Left" Margin="400,0,0,0" Content="Button No. 4-1" Grid.Row="0" Grid.Column="2" Height="150" Width="50" />

谢谢!

4

2 回答 2

12

您没有设置VerticalAlignmentHorizontalAlignment属性,因此默认情况下它们是居中的。

您需要设置这些属性并将它们与Marginwpf 元素的属性结合使用。

看看这篇介绍 WPF 布局

于 2012-04-12T21:19:56.640 回答
9

您可能希望在网格位置(Row # + Column #)使用容器控件(如CanvasDockPanelStackPanel)之一,然后将控件放入其中。

这使得在单个网格位置布局多个控件变得更加容易。

于 2012-04-12T21:19:09.837 回答