0

Page派生类上,我有一些嵌套网格。

我已将其更改ColumnDefinition为某些像素的宽度(即大约 5),其中某些列的宽度为“*”。

所有元素都有Width="Auto".

这是我的拆分器:

<Grid Margin="10"
          HorizontalAlignment="Stretch"
          VerticalAlignment="Stretch"
          Grid.Background="SpringGreen">

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

        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="5*" />

        </Grid.RowDefinitions>

        <GridSplitter Grid.Row="1"
                      Grid.Column="3"
                      Width="Auto"
                      Height="Auto"
                      Margin="0"
                      HorizontalAlignment="Stretch"
                      VerticalAlignment="Stretch"
                      Background="Red"
                      BorderThickness="1,0"
                      Cursor="SizeWE"
                      RenderTransformOrigin="-1,1"
                      ShowsPreview="True" />
    </Grid>

所以问题是,它几乎没有向左调整大小,但非常向右。它不取决于窗口大小,即使在全屏模式下,拆分器也只允许左侧的一些像素。

-edit- 是否有任何我自己没有发现的已知问题(在 Google 上)?有没有人经历过类似的奇怪行为?

-edit update- 找到网格的最小定义来重现问题。

4

1 回答 1

2

在两个 *-width 列之间有 3 个宽度为 5 的列。GridSplitter是在这些中间。它通过调整前一列的大小(即 5 像素列中的第一列)来工作。您不能向左调整大小,因为该列只有 5 像素宽。

请记住,RowColumn属性是从零开始的。

于 2013-02-21T13:18:15.233 回答