2

.xaml ファイルが視覚的にどのように見えるかを示す単純なビューアーを書き留めるタスクがあります (VS エディターと同じですが、編集機能はありません)。私に役立つ参考文献を教えていただけますか?

4

4 に答える 4

2

XamlReader.Loadメソッドを使用できます

デザイナーではなくビューアーのみが必要な場合は、XamlReader.Loadメソッドを呼び出して結果を割り当てることができますContentControl.Content

StringReader stringReader = new StringReader(strXaml);
XmlReader xmlReader = XmlReader.Create(stringReader);
myContentControl.Content = (Button)XamlReader.Load(xmlReader);

EDIT このコードは xaml からウィンドウをロードして表示します

string strXaml = "<Window xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" Title=\"MainWindow\" Height=\"350\" Width=\"525\">" +
        "<Grid> <Button Content=\"Button123\" Height=\"23\" HorizontalAlignment=\"Left\" Margin=\"174,41,0,0\" Name=\"button1\" VerticalAlignment=\"Top\" Width=\"75\" />"+
        "</Grid></Window>";

StringReader stringReader = new StringReader(strXaml);

XmlReader xmlReader = XmlReader.Create(stringReader);
Window obj = (Window)XamlReader.Load(xmlReader);

obj.Show();

ルート要素が常に Window であることが確実な場合は、スキップできます。このようなものは私のために働く

StringReader stringReader = new StringReader(strXaml);
var xDoc = XDocument.Load(stringReader).Document.Descendants().First().DescendantNodes().First();

XmlReader xmlReader = xDoc.CreateReader();
uc.Content = XamlReader.Load(xmlReader);

スキップする前にウィンドウが存在するかどうかを確認することをお勧めします

于 2012-12-13T13:31:29.673 に答える