我想將數據綁定到一個矩形的RenderSize的TextBlock。這是代碼。爲什麼我的綁定不會在UIElement.RenderSize或UIElement.ActualWidth上更新?
<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 ......爲什麼? 感謝您的幫助,
在Silverlight中又一次黑客攻擊,它開始讓我發瘋...... – 2010-01-04 20:21:35
如果您只處理元素上的SizeChanged事件並在事件處理程序中更新適當的值,它可能會更容易。如果您必須使用數據綁定,則僅在需要鏈接的帖子中介紹的解決方案纔是必需的。 – KeithMahoney 2010-01-04 20:47:49