devexpressを含むコントロールがありますGridControl
。ScrollViewer
表示領域がの最小幅よりも小さい場合にGridControl
、水平スクロールバーが表示されるように設定したいと思います。MinWidth
次に、表示領域のサイズが変更されると、表示領域がより大きくなるとスクロールバーが消えGridControl
、ウィンドウとともに伸びて、MaxWidth
その時点でGridControl
成長が止まるようにします。GridControl
それでは、これはとらえどころのない部分なので、表示領域を再び縮小して、「MinWidth」に到達してスクロールバーが再び表示されるまで、表示領域を縮小できるようにしたいと思います。
これまでのところ、私はGridControl
成長を達成することしかできません-表示領域が縮小すると、スクロールバーがすぐに表示され、GridControl
決して小さくなりません。
何か案は?
編集:これはDevExpressの問題のようですGridControl
。Rectangle
これは、 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を調整する必要があります)。他のコントロールは、最大と最小の間で正しくサイズ変更されます。最初の長方形は、ベースケースとして幅と高さが固定されています。