OnSizeChanged не вызывается при выпуске сборки

Я создал переносную библиотеку классов с контролем обрезки изображений для Windows Phone 8.1/Windows 8.1, и у меня возникли проблемы с поведением элементов управления в сборке выпуска.

Когда я в первый раз перехожу на страницу, которая содержит созданный элемент управления SizeChanged событие не возбуждено (поэтому я не могу правильно наблюдать ActualWidth/ActualHeight). Он возникает при изменении ориентации, в режиме отладки или даже когда я перехожу на другую страницу и возвращаюсь обратно на эту страницу (какой-то кэш управления навигацией по страницам?). Я отключил оптимизацию кода в сборке релиза, но это не помогает, так что я думаю, что это не проблема оптимизации компилятора. Что может быть причиной?

1 ответ

Решение

Я думаю, что нашел, как решить проблему (но не почему это происходит). Когда я пишу пользовательский элемент управления, я могу переопределить Size MeasureOverride(Size availableSize) что удивительно дает правильный размер. Я до сих пор понятия не имею, почему это происходит, технически говоря, SizeChanged должен быть повышен - в соответствии с msdn "Процедура обработки макета": measure -> arrange -> raise size changed if needed -> update layout

Другие вопросы по тегам