当width设置为某​​个值时,为什么实际宽度为零。 WPF

时间:2012-12-20 09:37:08

标签: wpf layout actualwidth actualheight

我有一个扩展Canvas的课程。在创建时,我明确地将其宽度设置为值:

Public Sub New(w As Integer, h As Integer)
    Me.Width = w
    Me.Height = h
End Sub

现在我使用cnvPreview.Children.Add(e)将此实例添加到画布到另一个画布,其中e是我的扩展画布的实例。

但是,当我运行该应用程序时,这些画布的ActualWidthActualHeight为0。

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

不要Canvas's缩小到可能的最小尺寸,但仍然完全显示自己的孩子?这可能导致ActualHeightActualWidth值为零。尝试添加say,TextBlock然后读取值。

我相信在其他帖子中可以更好地解释这一点:Why are ActualWidth and ActualHeight 0.0 in this case?

答案 1 :(得分:0)

请注意,ActualHeightActualWidth会在渲染控件后为您提供值。假设Canvas HeightWidth 50 ,并且在渲染后Canvas缩小,那么它将返回较低的ActualHeightActualWidth值,如果不可见则可能为零。