У меня есть следующий код XAML:МОФ - Binding вопрос ActualWidth
<Grid Grid.Row="2" Name="grid_StatusBar">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="{Binding ElementName=wrapPanel, Path=ActualWidth}" />
<ColumnDefinition Width="30" />
</Grid.ColumnDefinitions>
<ProgressBar Grid.Column="0" HorizontalAlignment="Stretch" Margin="5,5,5,5" Name="progressBar1" VerticalAlignment="Stretch" />
<WrapPanel Grid.Column="1" Name="wrapPanel" HorizontalAlignment="Right">
<Label Content="1" Height="28" HorizontalAlignment="Right" Margin="0,0,0,0" Name="label_Dataset" VerticalAlignment="Stretch" Visibility="Collapsed" />
<Label Content="/20" Height="28" HorizontalAlignment="Right" Margin="0,0,0,0" Name="label_TotalDatasets" VerticalAlignment="Stretch" Visibility="Collapsed" />
<Label Content="ID:" Height="28" HorizontalAlignment="Right" Margin="0,0,0,0" Name="label_IDText" VerticalAlignment="Stretch" />
<Label Content="no id" Height="28" HorizontalAlignment="Right" Margin="0,0,0,0" Name="labelID" VerticalAlignment="Stretch" />
</WrapPanel>
<Button Grid.Column="2" Name="button_Help" Height="30" Width="30" Content="?" HorizontalAlignment="Right" VerticalAlignment="Stretch" Click="button_Help_Click" >
</Grid>
Что я пытаюсь показать ProgressBar как можно шире, изменяя видимость некоторых лейблов и устанавливать различные тексты (и, следовательно, . различные длины/ширины
у меня тогда различные функции:.
- при запуске программы «нет ИД» текст
labelID
Этикетка заменяется с внутренним значением Ширина обновляется: OK - С кодом бега я изменить видимость первых двух меток, а
ColumnDefinition.Width
не обновляется и только первые две метки показаны (потому что не место достаточно для всех 4 из них, чтобы поместиться в wrapPanel ActualWidth: ОШИБКА! - Если изменить
Visibility
свойства из первых двух наклеек изCollapsed
вVisible
, от начала видимости всех этикеткиVisible
, и все этикетки показаны: OK - Из предыдущего состояния меняю видимость первых двух меток на
Collapsed
, тоColumnDefinition.Width
обновляется иProgressBar
является как можно более широким и весь текст отображается: OK
Может кто-нибудь, пожалуйста, помогите меня? Я не понимаю, почему ширина не обновляется ...
ПРИМЕЧАНИЕ: Видимость изменяется с помощью двух кнопок в окне запуска следующий код:
label_Dataset.Visibility = System.Windows.Visibility.Visible;
label_TotalDatasets.Visibility = System.Windows.Visibility.Visible;
EDIT: Моя цель чтобы показать видимые метки, используя минимальное пространство (в одной строке), чтобы иметь ProgressBar с максимальной шириной.
Установите ширину столбца на 'Auto' и попробуйте. –