XAML 设计师找不到资源

XAML designer can't locate resource

我在共享项目 () 中自定义了控件。

在 运行 时间内一切正常,xaml 设计师却抛出异常:

Cannot locate resource 'mycontrol.xaml'.

加载控件样式时出现问题:

public class MyControl: Control
{
    public MyControl()
    {
        Resources = new ResourceDictionary() { Source = new Uri("pack://application:,,,/mycontrol.xaml") };
        Style = (Style)Resources["somekey"];
    }
}

为什么它在 运行 时间内有效,而在设计时却无效?

我可以检测到设计时间,但那该怎么办?

WPF 设计器从其他项目加载 xaml 文件时似乎有问题。您能否尝试使用此注释加载 xaml 文件:

pack://application:,,,/PROJECTNAMESPACE;component/mycontrol.xaml

我会试试

Uri res = new Uri("pack://siteoforigin:,,,/mycontrol.xaml", UriKind.Relative);
Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = res });