我發現如何通過使用XamlReader.Load()來編程解析/加載XAML字符串,但是如果我要讓用戶將一個「.xaml」文件拖放到我的Silverlight應用程序上,我該如何解析文件添加到XAML文件並將內容讀入字符串以提供XamlReader.Load()方法。Silverlight:以編程方式打開並讀取XAML文件?
或者是否有更高效/更好的方法通過使用反射?
我想允許用戶使用Silverlight設計人員(合理範圍內)使用「silverlight for dummies」來設計一個簡單的控件。 (即標籤和文本框)。 然後保存或導出爲XAML文件(或者我可以簡單地將它們保存爲TXT文件?) 然後,他們會將此文件放入我的Silverlight應用程序,它會將文本解析爲XamlReader.Load (),那麼我可以將我的新編程創建的對象添加到列表框。
我有阻力的邏輯/放文件,並加載了XAML字符串,但得到一個「的.xaml」文件的內容,那中間點就是我自己的困惑......上
編輯
@nicholas,這正是我的目標。我不知道昨天發生了什麼,但我認爲我只是有一個主要的「大腦放屁」。 這是我怎麼會去:(還是有一定的清理和重構,但是這是測試)
IDataObject data = e.Data;
if (data.GetDataPresent(DataFormats.FileDrop))
{
FileInfo[] files = data.GetData(DataFormats.FileDrop) as FileInfo[];
if (files.Length > 1)
{
//TODO
}
else
{
FileInfo file = files[0];
extension = file.Extension;
string xaml = string.Empty;
using (Stream stream = file.OpenRead())
{
xaml = StreamUtils.StreamToString(stream);
}
if (!xaml.IsEmpty())
{
try
{
myListBox.Items.Add(XamlReader.Load(xaml);
}
catch (Exception ex)
{
//TODO
}
}
}