ArrangeOverride и Arrange () когда они вызываются системой Layouting? - PullRequest
1 голос
/ 18 апреля 2011

Я пытаюсь понять систему Layouting в Silverlight, но я действительно не знаю, как этот процесс работает. Я знаю, что Мера всегда вызывается раньше, а затем, когда все меры были выполнены, запускается Arrange. Но когда именно начинается этот процесс, и можем ли мы его контролировать? Пожалуйста, не пишите ссылку на библиотеку de MSDN, я уже прочитал ее, и она не совсем ясна ..

Моя конкретная ситуация заключается в том, что у меня есть несколько вложенных LinearLayouts (наследуют класс от работы Panel и Arrangeoverride и MEasureoverride), но мне нужен размер rootcontainer (потому что они являются размерами родительского элемента), и я не могу получить его до всех элементы загружаются в дерево, поэтому я вызываюrange () в LayoutRoot_Loaded. Это работает, да, но это делает процесс верстки как 3 раза, и это не эффективно для всей системы ... Кто-нибудь может помочь ?? или хотя бы объясните, как программист может полностью управлять системой компоновки: -)

Спасибо, yyoouuuuuuuu !!!

1 Ответ

0 голосов
/ 18 апреля 2011

можете ли вы попытаться поместить свой код в

    private void LayoutRoot_SizeChanged(object sender, System.Windows.SizeChangedEventArgs e)
    {
    }

вместо вызова Arrange ()?

...