是否可以從磁盤(即不是從應用程序資源)加載xaml文件並創建對象樹而不創建外部對象?換句話說,我想創建一個從Window派生的類並從磁盤加載一個xaml文件。看來我可以創建一個不從Window派生的類,並且可以從磁盤加載,或者我可以創建一個從Window派生的類,但是從應用程序資源加載xaml。如何在不創建外部對象的情況下加載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不能是絕對的。
真是個好主意,窗戶或只是在等待被使用的組件庫 - 輝煌。 – MrTelly 2009-04-10 05:11:03