将usercontrol与外部程序集中的静态资源一起使用

时间:2010-11-10 20:45:43

标签: c# silverlight-4.0 staticresource

听起来非常简单,这让我很伤心!

我正在尝试使用一个带有来自外部程序集的ResourceDictionary的样式的usercontrol,但是我在运行时遇到异常。

以下是如何重现:

  1. 创建名为MyControls.dll
  2. 的silverlight类库
  3. 创建一个名为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>
    
  4. 创建Styles.xaml ResourceDictionary并添加:

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

  5. 创建一个名为SL的Silverlight应用程序并添加Mycontrols作为参考

  6. 在MainPage.xaml网格中,添加:

    <MyControls:SuperControl />
    
  7. 它会编译,但运行应用程序时会出现“无法分配给属性'System.Windows.ResourceDictionary.Source'。[Line:10 Position:36]”

  8. 我将此添加到应用程序的App.xaml

    <ResourceDictionary Source="/MyControls;component/Styles.xaml" />
    
  9. 同样的错误...... :(

  10. 有什么想法?

1 个答案:

答案 0 :(得分:0)

第2步。 你忘了/。

  

源= “MyControls;组件/ Styles.xaml”

  

源= “/ MyControls;组件/ Styles.xaml”