Я пытаюсь управлять ресурсами в своем приложении Silverlight 5, построенном в VS2012. Что касается тематики, я вытащил все цветовые коды в разных пользовательских шаблонах и переместил их в отдельный файл ресурсов, чтобы их можно было изменять независимо от основных шаблонов.Silverlight - Управление цветовыми ресурсами - ошибки
Я объявил их следующим образом:
<Color x:Name="ButtonForeground">#FFFFFF</Color>
<Color x:Name="ButtonBackground">#004760</Color>
<Color x:Name="ButtonAltBackground">#0089B7</Color>
Хотя это строит и работает нормально, каждая из этих линий имеет две «ошибки», которые приходят каждый раз, когда я строю проект:
- Невозможно добавить контент к объекту типа «Цвет»
- Ошибка синтаксиса TypeConverter при обработке строки инициализации «#ColorCode». Атрибуты элемента не допускаются к объектам, созданным с помощью TypeConverter.
С учетом 30 цветов у меня есть 60 ошибок сборки в окне списка ошибок, хотя проект строит и работает нормально, и это отвлекает от реальных ошибок, когда они появляются.
Это также влияет на то, что мой цвет ResourceDictionary не включен, поскольку они не могут найти файл темы с цветами и потому, что словари, которые зависят от них, не работают, m не может ссылаться на них по очереди, поэтому ни один из моих шаблонов не найден. (Это приводит к еще 100 ошибкам, которые не останавливают создание и запуск приложения)
Может ли кто-нибудь объяснить мне, почему эти ошибки здесь, и что мне нужно сделать, чтобы они ушли?
Обновление: Я попытался также, используя следующий подход, который не имеет никаких проблем с XAML и работает, насколько словари ресурсов обеспокоены, но бросает исключение во время выполнения:
<Color x:Name="ButtonForeground" R="255" G="255" B="255"><!--#FFFFFF--></Color>
<Color x:Name="ButtonBackground" R="0" G="71" B="96"><!--#004760--></Color>
<Color x:Name="ButtonAltBackground" R="0" G="137" B="183"><!--#0089B7--></Color>
Это выглядит быть связанными с ошибкой, опубликованной здесь: Silverlight XAML BUG
Обновление 2: Я пробовал следующие два подхода: оба работают, но закомментированная версия вызывает ошибки, и я удалил ее по этой причине.
<VisualState x:Name="Normal">
<Storyboard>
<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Background" Storyboard.TargetName="BtnBorder">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ButtonBackgroundBrush}"/>
</ObjectAnimationUsingKeyFrames>
<!--<ColorAnimation Duration="0:0:0.1" To="{StaticResource ButtonBackgroundColor}" Storyboard.TargetProperty="Color" Storyboard.TargetName="RbBorderBackground"/>-->
</Storyboard>
Живых раздел прямо указывает на объект границы и использует это свойство Brush, то закомментирована версия указывает на кисти, используемой границы, и использует свойство Color. Прокомментированная версия анимирует гладко и выглядит хорошо, текущая версия просто меняет кисть сразу.
Благодаря
Тристан
Arg. Полная ошибка новичка :( – Tristan
Хорошая вещь о том, чтобы делать ошибки, заключается в том, что вы учитесь у них: D – Tonio