将XAML代码存储到文件问题中

时间:2014-01-08 15:34:18

标签: c# .net wpf xaml

我可以将我的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();
    }

问题是它现在保存文本框的内容只是告诉你有一个文本框,有没有办法实现这个?

0 个答案:

没有答案