ディスク(アプリケーションリソースからではない)から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();
現在のコードの第2ビットは、URIができないという例外を与えます絶対的である。
偉大なアイデア、ウィンドウやコンポーネントのライブラリを使用するのを待っている - 華麗。 – MrTelly