GridSplitter 不工作
GridSplitter not working
正在尝试使用 GridSplitter
,但它不起作用。将拆分器向左拖动可以,向右拖动则没有任何效果。我认为正确的网格是问题所在。但我不确定。请给我一些建议。
这是我的代码:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="{DynamicResource DefaultMargin}"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="100"/>
<ColumnDefinition x:Name="columnDefinition_One" Width="{DynamicResource DefaultMargin}"/>
<ColumnDefinition x:Name="columnDefinition_Two" MinWidth="230" Width="{Binding ActualWidth, ElementName=Element1}"/>
</Grid.ColumnDefinitions>
<Grid x:Name="Layout" Grid.Row="2" Grid.Column="0">
</Grid>
<GridSplitter x:Name="gridSplitter" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ResizeDirection="Columns" ResizeBehavior="PreviousAndNext" Grid.Column="1" Grid.Row="2" Background="{StaticResource DarkGray}" />
<Grid x:Name="grid_MonitoringView" Grid.Row="2" Grid.Column="2" Style="{DynamicResource DefaultPanel}" HorizontalAlignment="Stretch">
<Border>
<view1:ViewExample x:Name="viewExample"/>
</Border>
</Grid>
</Grid>
GridSplitter 不能将列宽减小到小于其 MinWidth 值。
如果最大化 window,您会发现效果很好
或者为了演示尝试删除 MinWidth 值:
<ColumnDefinition />
<ColumnDefinition x:Name="columnDefinition_One" Width="50"/>
<ColumnDefinition x:Name="columnDefinition_Two"/>
我将您的代码复制到我的演示项目中,对我来说效果很好。 @lomed 发现您的 MinWidth
值可能不正确,我也同意这一点。但是你说你的'grid_MonitoringView'没有受到影响
你注意到我的右边框布局正确了吗?所以真正的问题是ViewExample
class。您的 ViewExample
的布局值不正确,例如 MinWidth
或内部具有更大布局宽度的其他视觉对象。
正在尝试使用 GridSplitter
,但它不起作用。将拆分器向左拖动可以,向右拖动则没有任何效果。我认为正确的网格是问题所在。但我不确定。请给我一些建议。
这是我的代码:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="{DynamicResource DefaultMargin}"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="100"/>
<ColumnDefinition x:Name="columnDefinition_One" Width="{DynamicResource DefaultMargin}"/>
<ColumnDefinition x:Name="columnDefinition_Two" MinWidth="230" Width="{Binding ActualWidth, ElementName=Element1}"/>
</Grid.ColumnDefinitions>
<Grid x:Name="Layout" Grid.Row="2" Grid.Column="0">
</Grid>
<GridSplitter x:Name="gridSplitter" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ResizeDirection="Columns" ResizeBehavior="PreviousAndNext" Grid.Column="1" Grid.Row="2" Background="{StaticResource DarkGray}" />
<Grid x:Name="grid_MonitoringView" Grid.Row="2" Grid.Column="2" Style="{DynamicResource DefaultPanel}" HorizontalAlignment="Stretch">
<Border>
<view1:ViewExample x:Name="viewExample"/>
</Border>
</Grid>
</Grid>
GridSplitter 不能将列宽减小到小于其 MinWidth 值。
如果最大化 window,您会发现效果很好 或者为了演示尝试删除 MinWidth 值:
<ColumnDefinition />
<ColumnDefinition x:Name="columnDefinition_One" Width="50"/>
<ColumnDefinition x:Name="columnDefinition_Two"/>
我将您的代码复制到我的演示项目中,对我来说效果很好。 @lomed 发现您的 MinWidth
值可能不正确,我也同意这一点。但是你说你的'grid_MonitoringView'没有受到影响
你注意到我的右边框布局正确了吗?所以真正的问题是ViewExample
class。您的 ViewExample
的布局值不正确,例如 MinWidth
或内部具有更大布局宽度的其他视觉对象。