2013-12-02 2 views
1

Вместо того, чтобы создавать явные новые стили для каждого элемента управления, я думал, что пройду долгий путь, просто заменив цвета. Я попытался добавить ниже в свой App.xaml. В этом случае он должен соответствовать исходным цветам Windows 7 Aero, поэтому никаких изменений не должно быть видно.Замена SystemColors в Wpf throws ArgumentException

Странная часть заключается в том, что я получаю следующее исключение: почему она использует значение цвета в качестве ключа? Что мне не хватает?

System.ArgumentException: {"Item has already been added. Key in dictionary: '#FF000000' Key being added: '#FF000000'"} 

App.xaml

<Application x:Class="Frankenbuild.Wpf.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Application.Resources> 

     <!-- aero original colors --> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ActiveBorderColor}" Color="#FFB4B4B4"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ActiveCaptionColor}" Color="#FF99B4D1"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ActiveCaptionTextColor}" Color="#FF000000"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.AppWorkspaceColor}" Color="#FFABABAB"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ControlColor}" Color="#FFF0F0F0"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ControlDarkColor}" Color="#FFA0A0A0"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ControlDarkDarkColor}" Color="#FF696969"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ControlLightColor}" Color="#FFE3E3E3"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ControlLightLightColor}" Color="#FFFFFFFF"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ControlTextColor}" Color="#FF000000"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.DesktopColor}" Color="#FF000000"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.GradientActiveCaptionColor}" Color="#FFB9D1EA"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.GradientInactiveCaptionColor}" Color="#FFD7E4F2"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.GrayTextColor}" Color="#FF6D6D6D"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightColor}" Color="#FF3399FF"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextColor}" Color="#FFFFFFFF"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HotTrackColor}" Color="#FF0066CC"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.InactiveBorderColor}" Color="#FFF4F7FC"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.InactiveCaptionColor}" Color="#FFBFCDDB"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.InactiveCaptionTextColor}" Color="#FF434E54"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.InfoColor}" Color="#FFFFFFE1"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.InfoTextColor}" Color="#FF000000"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.MenuColor}" Color="#FFF0F0F0"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.MenuBarColor}" Color="#FFF0F0F0"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.MenuHighlightColor}" Color="#FF3399FF"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.MenuTextColor}" Color="#FF000000"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.ScrollBarColor}" Color="#FFC8C8C8"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.WindowColor}" Color="#FFFFFFFF"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.WindowFrameColor}" Color="#FF646464"/> 
     <SolidColorBrush x:Key="{x:Static SystemColors.WindowTextColor}" Color="#FF000000"/> 

    </Application.Resources> 
</Application> 

ответ

2

Попробуйте установить ResourceKey с вместо ... так что вместо этого:

<SolidColorBrush x:Key="{x:Static SystemColors.ActiveBorderColor}" Color="#FFB4B4B4"/> 

... попробуйте это:

<SolidColorBrush x:Key="{x:Static SystemColors.ActiveBorderColorKey}" Color="#FFB4B4B4"/> 

Для получения дополнительной информации, взгляните на th e SystemColors Properties страница на MSDN.

Смежные вопросы