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