2012-02-03 2 views
0

Я уверен, что это действительно просто, но я просто не могу понять, как это сделать.Получение высоты холста в WPF

У меня есть полотно на второй вкладке элемента управления вкладки. Вкладка сначала отключена до тех пор, пока не будет выполнен какой-либо другой метод, тогда вкладка будет включена, и я попытаюсь построить результаты в холсте.

Было бы неплохо иметь возможность масштабировать и центрировать график на холсте, и для этого мне нужно получить его фактические размеры.

Проблема в том, что когда я впервые загружаю результаты, вкладка с холстом еще не активирована, а ActualHeight и ActualWidth холста равны 0. Я также делаю растяжку холста в обоих направлениях, поэтому Ширина и высота - NaN. В основном я в привязке к тому, чтобы получить размеры, с помощью которых можно масштабировать график ... Есть ли способ получить эти значения перед переключением на вкладку?

Я, очевидно, хотел бы избежать хромого решения, такого как кнопка, в которой говорится: «Нажмите здесь, чтобы перемасштабировать график». Использование должно просто быть в состоянии переключиться на вкладку и получить там результаты.

+0

Действительно ли необходимо отключить вторую вкладку? Возможно, было бы легче включить вкладку и просто отобразить графику по умолчанию (может быть, пустую) на холсте, пока что-то не нарисовано. Это позволит избежать сложностей с этими ситуациями. –

+0

Это хороший момент. В общем, я сторонник того, чтобы оставить вещи отключенными как можно дольше, чтобы уменьшить код ошибки, чтобы справиться, когда пользователь нажимает элементы управления, когда данные не готовы ... Я думаю, что я мог найти обходное решение проблемы с холстом для теперь, хотя. Просто нужно проверить это. –

ответ

2

Вам нужно будет обрабатывать событие CanChanged как-то или иначе (привязка Event to Command или непосредственно в коде). Когда это событие происходит, получите холст «ActualHeight» и «ActualWidth» и соответствующим образом масштабируйте график.

+0

Обходной путь, о котором я говорил в своем комментарии выше. Кажется, он работает до сих пор. –

Смежные вопросы