gpt4 book ai didi

c# - 网格拆分器和最小宽度

转载 作者:行者123 更新时间:2023-11-30 21:18:39 25 4
gpt4 key购买 nike

我正在尝试为我的列设置一个 MinWidth

MinWidth 适用于 Column 0,但不适用于 Column 2。拆分器一直在拖动,我可以让 Column 小于声明的 MinWidthMinWidth 似乎只有在 Column Width 有一个数值而不是 Auto 时才会生效....有没有办法让它与 Auto 一起工作 或者只是 * ??

有什么想法吗?

    <!-- Content Area -->
<Grid x:Name="ContentGrid"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="32" Width="260"/>
<ColumnDefinition Width="8" />
<ColumnDefinition MinWidth="100" Width="*" />
</Grid.ColumnDefinitions>

<!-- Navigation -->
<ItemsControl Name="NavigationRegion"
Regions:RegionManager.RegionName="NavigationRegion"
Grid.Column="0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
<!-- Splitter -->
<controls:GridSplitter x:Name="GridSplitter"
Grid.Column="1"
VerticalAlignment="Stretch"
HorizontalAlignment="Center"
Background="{StaticResource SplitterBackgroundColor}"
Width="8"
UseLayoutRounding="True"
BorderThickness="1"
BorderBrush="Black"
Height="Auto"/>
<!-- Form -->
<ItemsControl x:Name="MainRegion"
Grid.Column="2"
Regions:RegionManager.RegionName="MainRegion">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>


</Grid>

最佳答案

我解决这个问题的方法是为 Column 0 设置一个 MaxWidth。当 SizeChanged 触发时,我根据当前 ActualWidth

获得 Column 0 的 MaxWidth

所以我也从 Column 2 中删除了我的 MinWidth。这是修改:

<!-- Content Area -->
<Grid x:Name="ContentGrid"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="32" Width="260"/>
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

...

然后事件设置MaxWidth

this.SizeChanged += (s, e) =>
{
double maxWidth = this.ActualWidth / 2.0;
this.ContentGrid.ColumnDefinitions[0].MaxWidth = maxWidth;
}

关于c# - 网格拆分器和最小宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4125785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com