Как получить размеры элемента WPF во время выполнения, не указывая их во время компиляции - PullRequest
3 голосов
/ 09 сентября 2010

проблема?

<UI:PanelBrowser Margin="12,27,12,32"></UI:PanelBrowser>

WPF смешен тем, что не указывая вручную свойства (такие как ширина и высота), в этом случае они имеют значения Doulbe.NaN. Проблема в том, что мне нужно знать этот номер. Я не собираюсь вручную устанавливать ширину и высоту в XAML, потому что это останавливает его изменение размера.

Учитывая приведенный выше фрагмент XAML (этот объект является простым подклассом элемента управления Border), как я могу получить значения свойств Width и Height во время выполнения?

Редактировать:

Ух ты, я чувствую себя смешно. Я читал о ActualWidth и ActualHeight, но они последовательно возвращали мне 0 и 0. Причина в том, что я тестировал эти свойства в конструкторе элемента Framework, прежде чем они были фактически инициализированы. Надеюсь, что это поможет кому-то, кто сталкивается с той же проблемой и проверяет ошибки. :)

Ответы [ 3 ]

10 голосов
/ 09 сентября 2010

Попробуйте вместо этого использовать свойства FrameworkElement.ActualWidth и ActualHeight .

1 голос
/ 09 сентября 2010

Для этой цели класс WPF FrameworkElement предоставляет два свойства DependencyProperties: FrameworkElement.ActualWidth и FrameworkElement.ActualHeight получат отображаемую ширину и высоту во время выполнения.

1 голос
/ 09 сентября 2010

Вы можете использовать свойства ActualWidth и ActualHeight элементов, чтобы получить значения ширины и высоты при их рисовании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...