Почему фактическая ширина будет нулевой, если ширина установлена в значение? WPF
У меня есть класс, который расширяет Canvas
, При создании я явно устанавливаю его ширину в значение:
Public Sub New(w As Integer, h As Integer)
Me.Width = w
Me.Height = h
End Sub
Теперь я добавляю экземпляры этого на холст к другому холсту, используя cnvPreview.Children.Add(e)
где e
это пример моего расширенного холста.
Однако когда я запускаю приложение, ActualWidth
а также ActualHeight
из этих полотен 0.
Как это можно исправить?
2 ответа
Не Canvas's
уменьшить до минимально возможного размера, но при этом по-прежнему отображать полностью своих детей? Может ли это быть причиной ActualHeight
а также ActualWidth
значения должны быть нулевыми. Попробуйте добавить, скажем, TextBlock
и чтение значений затем.
Я полагаю, что это объясняется лучше в этом другом посте: Почему ActualWidth и ActualHeight 0.0 в этом случае?
Обратите внимание, что ActualHeight
а также ActualWidth
даст вам значения после рендеринга элемента управления. Предположим, если Canvas
Height
а также Width
50 и после рендеринга Canvas
сжимается, то он вернется ниже ActualHeight
а также ActualWidth
значение или, возможно, ноль, если не видно.