我可以将我的WPF视图保存到文件中并重新打开它但我想保存代码然后加载代码,而不是保存视图。
目前这就是我所取得的成就:
public partial class MainWindow : Window
{
public void Export(Uri path, FrameworkElement surface)
{
if (path == null) return;
Transform transform = surface.LayoutTransform;
surface.LayoutTransform = null;
Size size = new Size(surface.ActualWidth, surface.ActualHeight);
surface.Measure(size);
surface.Arrange(new Rect(size));
Package package = Package.Open(path.LocalPath, FileMode.Create);
XpsDocument doc = new XpsDocument(package);
XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc);
writer.Write(surface);
doc.Close();
package.Close();
surface.LayoutTransform = transform;
}
private void Button_Click_1(object sender, System.Windows.RoutedEventArgs e)
{
Export(new Uri(@"C:\Users\Ben Clarke\Desktop\file.txt", UriKind.Absolute), Contents);
}
但是这会在记事本中创建一个文件,里面装满了无用的内容。
PK ô{(Dš½v FixedDocumentSequence.fdseq ¢ ( {¿{¿[fEjŠK~
当我把它放入XPS文件类型时,它就像我点击按钮时的打印屏幕一样保存。
我只是想将XAML代码保存在记事本文档中,当我点击另一个按钮时,它会重新加载XAML。
编辑:
现在可以正常工作并保存XAML代码:
public void Export()
{
string mystrXAML = XamlWriter.Save(Contents);
FileStream fs = File.Create(@"C:\Users\Ben Clarke\Desktop\file.txt");
StreamWriter sw = new StreamWriter(fs);
sw.Write(mystrXAML);
sw.Close();
fs.Close();
}
private void Button_Click_1(object sender, System.Windows.RoutedEventArgs e)
{
Export();
}
问题是它现在保存文本框的内容只是告诉你有一个文本框,有没有办法实现这个?