Есть ли причина, по которой вы не можете использовать свои цвета из словаря ресурсов напрямую, как в примере, показанном ниже? Для простоты я показываю «встроенные» ресурсы вместо отдельного файла словаря ресурсов. Зачем вам нужно загружать свой словарь ресурсов в коде?
<Window.Resources>
<x:Array x:Key="colors" Type="{x:Type Color}">
<x:Static Member="Colors.White" />
<x:Static Member="Colors.Red" />
<x:Static Member="Colors.Green" />
<x:Static Member="Colors.Blue" />
</x:Array>
</Window.Resources>
<ListBox ItemsSource="{StaticResource colors}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Rectangle Width="20" Height="20" Margin="2"
Stroke="Black">
<Rectangle.Fill>
<SolidColorBrush Color="{Binding}" />
</Rectangle.Fill>
</Rectangle>
<TextBlock Text="{Binding}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Если вам действительно необходимо перечислить ресурсы в коде, тогда я предлагаю вам сослаться на файл ресурсов в вашем XAML и использовать FrameworkElement.FindResource
в коде для получения ваших данных. В приведенном выше примере код может выглядеть примерно так:
var colors = (IEnumerable) FindResource("colors");
foreach(Color color in colors)
{
// Do something here...
}