C# 如何使文件流显示在Stackpanel中?
我已经能够将XAML保存到一个文件中,然后在另一个窗口上重新打开XAML。我现在添加了一个Stackpanel,用于将文件流放入,但我的代码中似乎出现了一个错误C# 如何使文件流显示在Stackpanel中?,c#,wpf,xaml,C#,Wpf,Xaml,我已经能够将XAML保存到一个文件中,然后在另一个窗口上重新打开XAML。我现在添加了一个Stackpanel,用于将文件流放入,但我的代码中似乎出现了一个错误 private void Button_Click_1(object sender, RoutedEventArgs e) { FileStream fs = File.Open(@"C:\Users\Ben Clarke\Desktop\file.txt", FileMode.Open); XamlReader.Lo
private void Button_Click_1(object sender, RoutedEventArgs e)
{
FileStream fs = File.Open(@"C:\Users\Ben Clarke\Desktop\file.txt", FileMode.Open);
XamlReader.Load(fs);
StackPanel panel = new StackPanel();
panel.Children.Add(fs);
}
行面板.Children.Add(fs)代码>似乎出现了一个错误,提示:
The best overloaded method match for 'System.Windows.Controls.UIElementCollection.Add(System.Windows.UIElement)' has some invalid arguments
Argument 1: cannot convert from 'System.IO.FileStream' to 'System.Windows.UIElement'
也将此信息告知:
The best overloaded method match for 'System.Windows.Controls.UIElementCollection.Add(System.Windows.UIElement)' has some invalid arguments
Argument 1: cannot convert from 'System.IO.FileStream' to 'System.Windows.UIElement'
有人能帮我解决这个问题吗。
using (var fs = File.Open(@"C:\Users\Ben Clarke\Desktop\file.txt", FileMode.Open))
{
StackPanel panel = new StackPanel();
panel.Children.Add((UIElement)XamlReader.Load(fs));
}
当然,如果XAML不包含
UIElement
作为其根,则在运行时会抛出InvalidCastException
。感谢您的回答,我删除了Stackpanel的实例化,并在窗口中将Panel更改为我的stackpanal的名称,它显示了。