【问题标题】:UserControl in UserControl: cannot locate resourceUserControl 中的 UserControl:找不到资源
【发布时间】:2016-04-27 14:29:40
【问题描述】:

我有一个 MVVM 应用程序,我想在另一个视图中重用一个视图,两个视图都是用户控件。

在第一个用户控件的 xaml 中的某处我有这个:

<Button Command="{Binding ChangeInitCommand}">
    <Image>
        <Image.Style>
            <Style TargetType="{x:Type Image}">
                <Setter Property="Source" Value="pack://application:,,,/images/Init-32.png" />
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsInit}" Value="True">
                        <Setter Property="Source" Value="pack://application:,,,/images/Deinit-32.png" />
                    </DataTrigger>
                    <Trigger Property="IsEnabled" Value="False">
                        <Setter Property="Opacity" Value="0.5" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Image.Style>
    </Image>
</Button>

最初我有&lt;Image Source="/Images/Init-32.png"&gt;,但产生了同样的问题。

当我在第二个用户控件中使用此用户控件时,设计器显示错误:无法创建“第一个用户控件”的实例。我可以查看异常详细信息,归结为:InnerExeption:找不到资源'images/init-32.png'

当不将第一个用户控件放在第二个用户控件中时,一切正常。图像的构建操作是“资源”。

我怎样才能摆脱这个错误?

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    更改包 URI 以包含程序集。请参阅https://msdn.microsoft.com/en-us/library/aa970069(v=vs.100).aspx 了解更多信息。

    <Setter Property="Source" Value="pack://application:,,,/WpfApplication49;component/images/Init-32.png" />
    

    将 WpfApplication49 替换为您的程序集名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多