gpt4 book ai didi

wpf - ColumnDefinition 在调整大小之前不会扩展

转载 作者:行者123 更新时间:2023-12-01 03:42:32 25 4
gpt4 key购买 nike

我有一个网格,其中一个列宽定义为 *。其他列定义为 Auto。具有 * 定义的列包含一个派生自 Panel 的用户控件,它也实现了 IScrollInfo。在此控件的 MeasureOverride 可见性设置为在另一列的 RepeatButton 上可见(否则 RepeatButton 的可见性设置为折叠)。

这不会导致列扩展。这只会在我调整窗口大小时发生。一个简化的例子:

<DockPanel LastChildFill="True">
<Grid DockPanel.Dock="Left">
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="TabItemColumn"/>
<ColumnDefinition x:Name="ScrollRightColumn" Width="Auto"/>
</Grid.ColumnDefinitions>
<ScrollViewer x:Name="PART_ScrollViewer"
Grid.Column="0"
Margin="-1,0,0,0"
Height="32"
CanContentScroll="True"
VerticalScrollBarVisibility="Hidden"
HorizontalScrollBarVisibility="Hidden"
HorizontalAlignment="Left">
<local:TabPanel
x:Name="tabPanel"
HorizontalAlignment="Left"
IsItemsHost="True" />
</ScrollViewer>

<RepeatButton Style="{StaticResource RepeatButtonScrollRight}"
Visibility="{Binding ElementName=tabPanel, Path=CanScrollRight, Converter={StaticResource _localBooleanConverter}}"
Grid.Column="1">
</RepeatButton>

RepeatButton 的可见性被正确触发,据我所知它实际上已呈现,但包含列的 ActualWidth 在调整大小之前为零。

有什么想法吗?

最佳答案

您需要在更改列宽后触发布局更改。使用 InvalidateArrange()在适当的父元素上。注意避免无限循环。

关于wpf - ColumnDefinition 在调整大小之前不会扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2131512/

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