我有一个包含 devexpress 的控件GridControl
。我想进行ScrollViewer
设置,以便当查看区域小于 的 minwidth 时GridControl
,会出现一个水平滚动条。然后随着查看区域的大小调整,我希望滚动条在查看区域大于时消失,MinWidth
并且GridControl
随着窗口拉伸,直到MaxWidth
达到GridControl
停止增长的点。然后,这似乎是难以捉摸的部分,我希望能够再次缩小查看区域并GridControl
与之签订合同,直到达到“MinWidth”并且滚动条重新出现。
到目前为止,我只能实现GridControl
增长 - 当查看区域缩小时,滚动条会立即出现并且GridControl
永远不会变小。
有任何想法吗?
编辑:这似乎是 DevExpress 的问题GridControl
。这是一个演示Rectangle
s、aDataGrid
和 a行为的示例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)。其他控件在最大和最小之间正确调整大小。第一个矩形作为基本情况具有固定的宽度和高度。