Silverlight NaN высота и ширина, ActualHeight и ActualWidth также возвращают 0,0 - какой обходной путь?

popUpControl а также listBoxControl ниже возвращаются NaN как высота и ширина. ActualHeight также 0,0

Зачем? и что еще более важно, как это обойти?

<Popup Name="popUpControl" IsOpen="True" VerticalAlignment="Top" HorizontalAlignment="Left" >
    <ListBox Name="listBoxControl" SelectionChanged="_ListBox_SelectionChanged"
            Style="{StaticResource ListBoxStyle}" BorderBrush="Transparent"
             MaxHeight="300" MaxWidth="350" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal" >
                    <TextBlock Text="{Binding ID}" VerticalAlignment="Center" Margin="2,0,0,0" />
                    <TextBlock Text="{Binding Name}" VerticalAlignment="Center" Margin="2,0,0,0" />
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Popup>

2 ответа

Решение

Чтобы обновить ActualWidth а также ActualHeight FrameworkElement вам придется позвонить UpdateLayout,

надеюсь, это поможет кому-то.

В WPF и silverlight ширина и / или высота NaN означает "Авто", то, что вы, вероятно, должны смотреть (и привязывать к), вместо этого - ActualWidth и / или ActualHeight

Другие вопросы по тегам