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>

したがって、問題は、左側のサイズ変更はほとんど行われず、右側のサイズ変更はほとんど行われないということです。これはウィンドウサイズに依存しません。フルスクリーンでも、スプリッターは左側の一部のピクセルのみを許可します。

-編集-私が(Googleで)見つけられなかった既知の問題はありますか?誰かが同様の奇妙な行動を経験しましたか?

-更新の編集-問題を再現するためのグリッドの最小定義を見つけました。

4

1 に答える 1

2

2つの*幅の列の間に幅5の3つの列があります。これらGridSplitterの真ん中にあります。これは、前の列(つまり、5ピクセル列の最初の列)のサイズを変更することで機能します。その列の幅はわずか5ピクセルであるため、左にサイズ変更することはできません。

RowおよびColumnプロパティはゼロベースであることを忘れないでください。

于 2013-02-21T13:18:15.233 に答える