Cela semble très simple et ça me tue! J'essaie d'utiliser une commande usercontrol avec des styles d'un ResourceDictionary d'un assembly externe, mais j'obtiens une exception à l'exécution.Utilisation de contrôles usuels avec des ressources statiques de l'assemblage externe
Voici comment reproduire:
- Créer une bibliothèque de classes silverlight appelée MyControls.dll
Créer un usercontrol appelé Superchamp:
<UserControl.Resources> <ResourceDictionary Source="MyControls;component/Styles.xaml" x:Key="Styles" /> </UserControl.Resources> <Grid x:Name="LayoutRoot" Background="White"> <TextBlock Style="{StaticResource MyStyle}" Text="Hello"/> </Grid>
Créer un Styles.xaml ResourceDictionary et ajouter:
<Style x:Key="MyStyle" TargetType="TextBlock"> <Setter Property="FontSize" Value="15"/> <Setter Property="FontWeight" Value="Bold"/> <Setter Property="TextWrapping" Value="Wrap"/> <Setter Property="Margin" Value="0,15,0,4"/> <Setter Property="HorizontalAlignment" Value="Left"/> </Style>
Créer une application Silverlight appelé SL et ajouter MyControls comme référence
En MainPage.xaml Grille, ajoutez:
<MyControls:SuperControl />
Il compilera, mais l'exécution du application que vous obtenez "Impossible d'affecter à la propriété 'System.Windows.ResourceDictionary.Source'. [Ligne: 10 Position: 36]? »
Je App.xaml a ajouté à
<ResourceDictionary Source="/MyControls;component/Styles.xaml" />
même erreur de l'application ... :(
Toutes les pensées
J'ai eu un problème similaire et cause était en utilisant une barre oblique inverse (\) au lieu de barre oblique (/) lors de la référence du fichier. L'analyseur xaml dans VS était capable de résoudre l'emplacement, mais lors de l'exécution, une erreur était générée. Espérons que cela aidera quelqu'un d'autre. –