Можно ли загрузить файл 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 не может быть абсолютным.