Обновление Windows 7, результаты в «Элемент уже добавлен. Ключ в словаре: controlbrush» в приложении WPF - PullRequest
3 голосов
/ 23 октября 2019

У меня небольшая проблема, у меня есть приложение WPF, которое работает без проблем в течение нескольких лет. Теперь Microsoft выпустила обновление для Windows 7, которое приводит к приведенной ниже ошибке в приложении.

System.Windows.Markup.XamlParseException: Set property 'System.Windows.ResourceDictionary.DeferrableContent' threw an exception. ---> System.ArgumentException: Item has already been added. Key in dictionary: 'ControlBrush'  Key being added: 'ControlBrush'

Это, кажется, внезапно вызывается следующим кодом

<TreeView.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />
</TreeView.Resources>

Используетсядля переопределения стиля по умолчанию в нескольких окнах. Думаю, я не могу заставить Microsoft изменить свое обновление, поэтому мне нужно обновить свой код, чтобы как-то решить эту проблему. У кого-нибудь есть предложения об обходе, изменении кода, который мог бы решить эту проблему?

Просто чтобы уточнить, код не изменился в прошлом месяце и работал нормально после двух компьютеров с Windows 7были обновлены, они оба начали показывать это поведение.

Обновление

Кажется, что для компонента TreeView, проблема существует.

Обновление 2

Обновление, вызывающее проблему, - kb4520406, обновление .Net (предварительная версия)

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

У нас та же проблема в нашем приложении (ControlBrush добавлен, хотя он уже есть) после установки KB4519568. Интересно то, что наше приложение защищено от Wibu (ключ), и если я сниму защиту Wibu, проблема исчезнет. Вы тоже используете защиту Wibu?

0 голосов
/ 24 октября 2019

Обновление kb4520406 содержит пакет ndp48-kb4519568-x86_57739704597ae82f771152c084d756d2f187b13f.exe, который вызывает эту проблему, удалив его и установив ndp48-kb4515847-x86_3a86918366a8073eb6.exe2 1002. Поэтому я не пытался решить проблему с изменениями кода покупки.

...