2016-04-22 2 views
0

У меня есть элемент управления, который позволяет пользователю добавлять и изменять n графических и текстовых слоев. Слоями являются каждое пользовательское управление, которое добавляется к холсту родительского элемента управления. Я использую событие LayoutUpdated родительского элемента управления для обновления определенных переменных и других вещей. Без изменения метода обработчика событие LayoutUpdate прекратило стрельбу. Я, очевидно, сделал что-то, что вызвало это, но я не занимался чем-либо, что могло бы логически связать эту новую проблему. Любые идеи оцениваются - спасибо. JUST TO CLARIFY: Я не прошу разрешения - просто анекдот опыта с чем-то похожим. Это, вероятно, будет более полезно, чем вы можете себе представить. СпасибоLayoutОбновленное событие прекратило стрельбу. Обработчики на месте, любые идеи?

+0

Мы не знаем, что вы, возможно, сделали, не видя соответствующий код. –

+0

Просто интересно, если кто-то испытал это раньше - часто чужой опыт ценен. – RLB

ответ

0

Причиной в этом случае был пользовательский элемент управления WPF, определенный в xaml во время разработки внутри холста без каких-либо значений свойств зависимостей. Холст находится внутри другого пользовательского контроля другого типа (мама). Во время выполнения создается экземпляр мамы, а ее малыш имеет размер, расположение и делает видимым в холсте мамы на основе размера времени мамы, а также вызывает аргументы, которые указывают, должен ли ребенок быть видимым. Этот экземпляр малыша имеет размер и расположение только в том случае, если ему требуется быть видимым, если нет, он только скрыт (не размер, не расположен).
Присутствие этого экземпляра, но неизображенного и ненастроенного элемента в холсте мамы вызывало сбой при компоновке событий. Эта ситуация повлияла не только на рассматриваемый экземпляр, но и на все другие экземпляры, созданные во время выполнения проекта. (ПРИМЕЧАНИЕ - не было сделано никаких исключений)

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