Я создаю настраиваемый элемент управления в Silverlight, получая из ContentControl и делая специальное форматирование, чтобы поместить заслонку за содержимое.
Я почти получил его работу, но недавно столкнулся с причудливой ошибкой. Он отлично работает, если содержит ничего, кроме границы, или Grid/Stackpanel/etc, который не имеет явно определенной высоты и ширины.
Я получаю ошибку JavaScript в IE, и в тексте говорится:
Ошибка выполнения 4008... Обнаруженный цикл компоновки... Макет не может быть завершен.
Если я укажу высоту и ширину на содержащейся grid/stackpanel/etc, она отлично работает.
Существует тонна в Интернете об этой ошибке, когда используется слишком много текстовых полей (более 250), но я могу воспроизвести свою ошибку с помощью одной кнопки в сетке.
У меня нет текстовых полей на странице. Ошибка связана с обнаруженным бесконечным циклом. Я установил несколько контрольных точек в коде, и кажется, что событие "SizeChanged" получает много во время рендеринга, и каждый раз, когда высота/ширина увеличивается на 10.
Я предполагаю, что установка высоты/ширины по умолчанию заставляет его пропускать это увеличение числа, но я не знаю, почему эта ошибка происходит.
Кто-нибудь сталкивался с этим или имел какие-то идеи?