Использование пользовательских контролей со статическими ресурсами из внешней сборки - PullRequest
0 голосов
/ 10 ноября 2010

Звучит очень просто и убивает меня!

Я пытаюсь использовать один пользовательский элемент управления со стилями из ResourceDictionary внешней сборки, но я получаю исключение во время выполнения.

Вот как воспроизвести:

  1. Создать библиотеку классов silverlight с именем MyControls.dll
  2. Создайте пользовательский контроль SuperControl:

    <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>
    
  3. Создайте ResourceDictionary Styles.xaml и добавьте:

    <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>
    

  4. Создайте приложение Silverlight под названием SL и добавьте Mycontrols в качестве ссылки

  5. В MainPage.xaml Grid добавьте:

    <MyControls:SuperControl />
    
  6. Он будет скомпилирован, но при запуске приложения вы получите "Не удалось присвоить свойству 'System.Windows.ResourceDictionary.Source'. [Строка: 10 Позиция: 36]"

  7. Я добавил это в приложение App.xaml

    <ResourceDictionary Source="/MyControls;component/Styles.xaml" />
    
  8. Та же ошибка ...: (

Есть мысли?

1 Ответ

0 голосов
/ 11 ноября 2010

Шаг 2. Вы забыли /.

Source = "MyControls; component / Styles.xaml"

Запись

Источник= "/ MyControls; component / Styles.xaml"

...