Почему появляется предупреждение:
См. Разница между DynamicResource и StaticResource . Элемент окна инструментов использует DynamicResources, поэтому ресурс можно устанавливать и изменять во время выполнения.
И WindowsKey и WindowsTextKey происходят из VsBrushes class , эти два цветовых ресурса не могут быть доступны во время разработки, вместо этого они могут быть доступны во время выполнения. Вот почему элемент управления «Окно инструментов» работает хорошо после установки .vsix, а vs показывают два предупреждения.
Дополнительно:
Если мы изменим DynamicResource на StaticResource, предупреждение станет ошибкой. Значение по умолчанию vsshell:VsBrushes.WindowKey
в шаблоне доступно только во время выполнения, поэтому команда разработчиков по умолчанию устанавливает DynamicResource.
Я думаю, что это умышленно, и предупреждение на самом деле можно рассматривать как сообщение: Possible notFoundResource, please take care!
Так что мы можем просто проигнорировать его.
Чтобы удалить предупреждение:
Как я уже сказал, это просто сообщение о том, что существует вероятность того, что ресурс не может быть разрешен, так как дизайнер не может получить доступ к ресурсу vsshell:VsBrushes.WindowKey
в "времени конструктора". Почему бы не установить цвет на системный цвет, к которому мы можем получить доступ при разработке элемента управления.
На самом деле мы разрабатываем Window COntrol, конечно, мы можем изменить цвет элемента управления, чтобы сделать его лучше. (UI-design?) Так что для меня я изменил два ресурса на SystemResource, к которым можно получить доступ в designer- время, когда предупреждения исчезли:
Background="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"
Foreground="{DynamicResource {x:Static SystemColors.MenuBarBrushKey}}"