У меня есть сетка, где одна ширина столбца определяется как *
.
Другие столбцы определены как 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
содержащего столбца равен нулю до изменения размера.
Есть идеи?