【发布时间】:2012-05-09 21:55:54
【问题描述】:
是否可以从磁盘(即不是从应用程序资源)加载xaml 文件并创建对象树而不创建外部对象?换句话说,我想创建一个派生自 Window 并从磁盘加载 xaml 文件的类。似乎我可以创建一个不从 Window 派生并且可以从磁盘加载的类,或者我可以创建一个从 Window 派生但从应用程序资源加载 xaml 的类。
例如,我可以这样做:
XmlTextReader xmlReader = new XmlTextReader("c:\\mywindow.xaml");
object obj = XamlReader.Load(xmlReader);
Window win = obj as Window;
但我真正想做的是:
class MyWindow : Window
{
public MyWindow()
{
System.Uri resourceLocater = new System.Uri("file://c:/mywindow.xaml", UriKind.Absolute);
System.Windows.Application.LoadComponent(this, resourceLocater);
}
}
...
MyWindow w = new MyWindow();
目前第二段代码给出了一个异常,说 uri 不能是绝对的。
【问题讨论】:
-
真是个好主意,窗口库或组件库正在等待使用 - 太棒了。