我有两个项目,项目A 是WPF应用程序,项目B 是WPF控件库。
项目A 引用默认的WPF内容。但不是System.Windows.Controls.Ribbon
。
项目B 定义了一个类MainWindow
,它继承自RibbonWindow
汇编中的System.Windows.Controls.Ribbon
。
在App.xaml.cs内部我将Current.MainWindow
实例设置为项目B的MainWindow
Current.MainWindow = factory.CreateMainWindow(); // Returns of type `MainWindow`
这会导致以下构建错误:
CS0012 :类型“RibbonWindow”在未引用的程序集中定义。您必须添加对程序集'System.Windows.Controls.Ribbon,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用。
CS0029 :无法将类型'MyNamespace.MainWindow'隐式转换为'System.Windows.Window'
可以从项目A
引用System.Windows.Controls.Ribbon
来解决
如您所见,MainWindow
是RibbonWindow
,是Window
。
Current.MainWindow
需要设置Window
。 MainWindow
返回的factory.CreateMainWindow()
将被隐式转换为Window
。