2009-11-05 2 views
0

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

Очевидно, что я хочу держаться подальше от представления за кодом и напрямую обращаться к UIElement для региона.

Любые идеи?

Спасибо за ваше время

ответ

-1

Вы можете использовать

_regionManager.Regions[regionName].Views.ElementAtOrDefault(0); 

, чтобы получить текущую позицию в регионе вы хотите использовать. Затем вы можете проверить свойство DesiredSize этого вида, чтобы узнать, какая вероятность и высота этого региона. Я думаю, что это должно работать при нормальном использовании.

В этом регионе всегда должно быть вид. Если нет, вы можете использовать фиктивный вид или так.

+0

Спасибо, это в значительной степени то, что мне нужно, по какой-то причине у меня нет доступного метода ElementAtOrDefault. Что я делал, каждый раз, когда создавался новый вид, слушал его загруженное событие, а затем обрабатывал размер добавленного вида, если его первый добавлен. – Suiva

+0

Что на самом деле не работает, глядя, потому что я могу только получить размер вида, который нужно добавить, а не область полного региона. – Suiva

+0

ElementAtOrDefault - метод расширения linq. Если вы добавите «using System.Linq;» к вашим потребностям, это должно сработать. – RonaldV

0

Я бы рекомендовал против попытки сделать это вообще. Вместо этого я бы сосредоточился на том, чтобы адаптировать регион к переполнению (автоматическое изменение размера, прокрутка, вкладки и т. Д.).

Существует много непредсказуемых вещей, которые могут произойти здесь. Например, есть некоторые элементы управления, чьи представления определяются их контейнером. Истинный размер представления, который вы хотите добавить в регион, не будет известен, пока он не будет добавлен в регион, поэтому принятие этого решения будет носить нетривиальный характер.

Я знаю, что это прямо не отвечает на ваш вопрос, но, надеюсь, это будет полезно независимо.

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