4

我在共享项目中自定义控件(共享项目中的资源字典)。

在运行时一切正常,但 xaml 设计器抛出异常:

找不到资源“mycontrol.xaml”。

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

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

为什么它在运行时有效而在设计时无效?

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

4

2 回答 2

5

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

pack://application:,,,/PROJECTNAMESPACE;component/mycontrol.xaml
于 2017-01-03T10:23:22.700 回答
0

我会尝试

Uri res = new Uri("pack://siteoforigin:,,,/mycontrol.xaml", UriKind.Relative);
Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = res });
于 2017-01-03T10:55:09.793 回答