WPF: NotSupportedException: The URI prefix is not recognized.
WPF: NotSupportedException: The URI prefix is not recognized.
1.如果你有MyWindow的源代码,添加前缀pack://application:,,,
1 | _dictionary.Source = new Uri("pack://application:,,,/RibbonControlsLibrary;component/Themes/RibbonWindow.xaml", UriKind.Relative); |
2.如果MyWindow是第三方提供的,你就需要在new MyWindow()之前加上下面的语句:
1 | System.Windows.Application app = new System.Windows.Application(); |
分析Applicaiton的源代码其实就会发现,在它的静态构造函数中有下面的代码:
1 | // Add an instance of the ResourceContainer to PreloadedPackages so that PackWebRequestFactory can find it |
它的作用其实就是在后面的Uri定位过程中自动添加必要的”pack://application:,,,”
由于app.ShutdownMode的缺省值是OnLastWindowClose,这会在程序中的最后一个Wpf窗口关闭时自动关闭Wpf Application,如果你需要反复显示关闭Wpf窗口,有必要更改其值。
在使用第二种方法的过程中其实你会注意到我并没有调用app.Run方法,按我的理解完全没有必要调用,因为我所需要的只是Application的静态构造函数进行必要的初始化:PreloadedPackages.AddPackage(…)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WineMonk!
评论