Я пытаюсь привязать данные TextBlock к RenderSize прямоугольника. Вот код.
<StackPanel x:Name="root">
<Rectangle x:Name="rect" Fill="Green" RenderTransformOrigin="0.5,0.5" Height="100" Width="100" />
<TextBlock Text="{Binding ElementName=rect, Path=Width}"></TextBlock>
<TextBlock Text="{Binding ElementName=rect, Path=ActualWidth}"></TextBlock>
<TextBlock Text="{Binding ElementName=rect, Path=RenderSize}"></TextBlock>
<Slider Value="{Binding ElementName=rect, Path=Width, Mode=TwoWay}" Maximum="200"></Slider>
<Button Content="Manually Get RenderSize" Click="Button_Click_1"></Button>
<TextBlock x:Name="info"></TextBlock>
</StackPanel>
Когда я перемещаю ползунок, прямоугольник становится больше, и первый текстовый блок корректно обновляется.
Однако ActualWidth и RenderSize остаются равными 0 и 0,0.
Когда я нажимаю кнопку, я получаю RenderSize программно и показываю его в последнем TextBlock, который отличается от 0,0.
private void Button_Click_1(object sender, RoutedEventArgs e)
{
info.Text = rect.RenderSize.ToString();
}
Таким образом, моя привязка к RenderSize неправильно обновляет TextBox ... Почему?
Спасибо за вашу помощь,