Funktionieren ein ComponentResourceKey?

Ich erstelle eine WPF-App mit mehreren Assemblys und möchte ein Ressourcenwörterbuch für diese freigeben. Das erfordert eineComponentResourceKey. Ich habe eine kleine Demo erstellt, um das CRK zu testen, und ich kann es scheinbar nicht zum Laufen bringen.

Meine Demo hat zwei Projekte, ein WPF-Projekt namensDemound eine DLL aufgerufenVerbreitet. DasVerbreitet Projekt hat einen Ordner namensThemen. Es enthält mein Ressourcen-Wörterbuch,generic.xaml. Hier ist der Text des Ressourcenwörterbuchs:

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Common" >

    <SolidColorBrush 
        x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type local:SharedResources}, ResourceId=RedSolidBrush}" 
        Color="Red"/>

</ResourceDictionary>

Verbreitet enthält auch eine Klasse namensSharedResources.cs. Es enthält eine Eigenschaft zum Verweisen auf die Brush-Ressource im Wörterbuch:

public static ComponentResourceKey RedSolidBrush
{
    get { return new ComponentResourceKey(typeof (SharedResources), "RedSolidBrush"); }
}

Endlich das Hauptfenster in meinemDemo Projekt verweist auf die Pinselressource, um ein Rechteck zu füllen:

<Window x:Class="ComponentResourceKeyDemo.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:res="clr-namespace:Common;assembly=Common"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <Rectangle Height="100" Width="100" Stroke="Black" Fill="{DynamicResource {ComponentResourceKey TypeInTargetAssembly={x:Type res:SharedResources}, ResourceId=RedSolidBrush}}" />
    </Grid>
</Window>

Ich kann den Grund nicht finden, warum es nicht funktioniert. In VS 2008 und Blend funktioniert die Kompilierung einwandfrei, die Ressource wird jedoch nicht aufgerufen. Der einzige Hinweis, den ich habe, ist eine Fehlermeldung in Blend:

The Resource "{ComponentResourceKey ResourceId=RedSolidBrush, TypeInTargetAssembly={x:Type res:SharedResources}}" could not be resolved.

Irgendeine Idee, warum das nicht funktioniert? Danke für Ihre Hilfe.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage