aquí es el escenario en el que he conseguido poner en práctica un entrenamiento para este problema:
tengo una serie de cuadros de texto que están vinculadas a un documento de Excel. Los cuadros de texto toman un valor numérico. Están configurados para invalidar los errores de datos en el código xaml. Se produce un error de datos si el número es < 1 o nulo. Coloqué un AdornerDecorator alrededor del cuadro de texto (para que el borde rojo de invalidación aparezca correctamente sobre el cuadro de texto). En Excel, puede modificar todos los cuadros de texto al mismo tiempo, pero, como encontró el OP, si logra invalidar más de 144 cuadros de texto a la vez, el decorador de adorno comienza a reproducirse, compensando la posición de los bordes (el mismo Lo que fue diseñado para solucionar en primer lugar).
Probé una serie de soluciones diferentes, incluida la invalidación del diseño, sin embargo, ninguno de estos funcionó para la situación que estaba enfrentando. Usando Snoop, encontré que si actualicé manualmente el cuadro de texto, el adorner se colocó correctamente. Entonces, decidí llamar a una actualización del diseño de cada cuadro de texto individual que necesitaba el adorno. Hice esto al escuchar OnValueUpdated en los cuadros de texto. Si el nuevo valor que estaba actualizando pasó a ser un valor no válido, forzaré un "UpdateLayout()" para el cuadro de texto (solo quería hacer esto para los valores no válidos ya que forzar una actualización afecta el rendimiento, y no quiero hazlo cada vez que cambie el valor).
De esta forma, independientemente del número de celdas que quería cambiar a la vez, decoder decorator siempre se muestra en la posición correcta (excepto el último cuadro de texto para evaluar que, a pesar de mis mejores esfuerzos, siempre muy ligeramente desalineado).
Si las posiciones del adorno están animadas, la pregunta puede estar relacionada con [esta pregunta] (http://stackoverflow.com/questions/9049610/is-141-the-maximum-number-of-wpf-panel-items -que-puede-animarse-simultáneamente/9062419 # 9062419). Noté 144 como el número máximo de transformaciones animadas (bajo ciertas condiciones) allí. – Clemens
También hay [esta pregunta] (http://stackoverflow.com/questions/7610608/onrender-method-does-not-work-with-more-than-144-controls) que también se ejecuta en el número mágico 144.Los míos no están animados directamente, pero están unidos a controles que se desplazan hacia adelante y hacia atrás. –