1

devexpressを含むコントロールがありますGridControlScrollViewer表示領域がの最小幅よりも小さい場合にGridControl、水平スクロールバーが表示されるように設定したいと思います。MinWidth次に、表示領域のサイズが変更されると、表示領域がより大きくなるとスクロールバーが消えGridControl、ウィンドウとともに伸びて、MaxWidthその時点でGridControl成長が止まるようにします。GridControlそれでは、これはとらえどころのない部分なので、表示領域を再び縮小して、「MinWidth」に到達してスクロールバーが再び表示されるまで、表示領域を縮小できるようにしたいと思います。

これまでのところ、私はGridControl成長を達成することしかできません-表示領域が縮小すると、スクロールバーがすぐに表示され、GridControl決して小さくなりません。

何か案は?

編集:これはDevExpressの問題のようですGridControlRectangleこれは、 s、a、DataGridおよびGridControl:の動作を示す例です。

<UserControl xmlns:dxg="clr-namespace:DevExpress.Xpf.Grid;assembly=DevExpress.Xpf.Grid.v11.2"  x:Class="MyNamespace.ScrollViewerTest"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d">
    <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition />
                <RowDefinition />
                <RowDefinition />
            </Grid.RowDefinitions>
            <Rectangle Width="500" Height="200" Fill="AliceBlue" />
            <Rectangle Grid.Row="1" MinHeight="200" MaxHeight="400" MinWidth="500" MaxWidth="1000" Fill="Bisque" />
            <DataGrid Grid.Row="2" MinWidth="500" MaxWidth="10000" MinHeight="200" MaxHeight="400">                
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Column 1" Width="Auto"/>
                    <DataGridTextColumn Header="Column 2" Width="Auto"/>
                    <DataGridTextColumn Header="Column 3" Width="Auto"/>
                    <DataGridTextColumn Header="Column 4" Width="Auto"/>
                </DataGrid.Columns>
            </DataGrid>
            <dxg:GridControl Grid.Row="3" MinWidth="500" MinHeight="200" MaxWidth="1000" MaxHeight="400"/>
        </Grid>

    </ScrollViewer>        

</UserControl>

GridControl開始点が他のコントロールで開始されMaxWidth、拡張されないことに注意してください。また、垂直方向のサイズ変更が機能することに注意しGridControlてください。ウィンドウのサイズを変更すると、サイズが上下します(MinHeightモニターが小さい場合は、sを調整する必要があります)。他のコントロールは、最大と最小の間で正しくサイズ変更されます。最初の長方形は、ベースケースとして幅と高さが固定されています。

4

1 に答える 1

2

これは私にとってはうまくいくようです(GridControlを取得するのではなくListBoxに置き換えました):

    <ScrollViewer HorizontalAlignment="Stretch" Name="scrollViewer1" VerticalAlignment="Stretch" Margin="8" HorizontalScrollBarVisibility="Auto">
        <ListBox Name="listBox1" MinWidth="400" MaxWidth="600" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
    </ScrollViewer>
于 2012-06-28T05:02:51.800 に答える