Содержание блога

вторник, 17 августа 2010 г.

Сохранить файл из приложения на silverligth

Обрабатываем кнопку
private void buttonSaveXML_Click(object sender, RoutedEventArgs e)
        {
            SaveFileDialog saveFileDlg1 = new SaveFileDialog();
            saveFileDlg1.Filter = "Cave|*.cave|all|*.*";
            
            saveFileDlg1.ShowDialog();
            if (saveFileDlg1.SafeFileName != "")
            {
                System.IO.Stream stream = saveFileDlg1.OpenFile();

                GenGFXtoXML(stream);

                stream.Flush();
                stream.Close();
            }
        }

функция GenGFXtoXML - генерирует XML файл и сохраняет его в поток stream

public void GenGFXtoXML(System.IO.Stream stream)
        {
            StringWriter sw = new StringWriter();
            XmlWriterSettings settings = new XmlWriterSettings();
            settings.Indent = true;
            //settings.NewLineOnAttributes = true;
            settings.ConformanceLevel = ConformanceLevel.Document;
            settings.OmitXmlDeclaration = true;

            using (XmlWriter xml = XmlWriter.Create(sw, settings))
            {
                xml.WriteStartDocument();
                xml.WriteComment("Создано WebPiket ver " + version);
                xml.WriteStartElement("gfx");
                #region Линия масштаба line_scale

                Line lnscale = (Line)cnvDrawPoly.Children[3];// линия масштаба
                xml.WriteStartElement("lnscale");

                xml.WriteStartAttribute("Name");
                xml.WriteString(lnscale.Name);
                xml.WriteEndAttribute();

                xml.WriteStartAttribute("X1");
                xml.WriteString(lnscale.X1.ToString());
                xml.WriteEndAttribute();

                xml.WriteStartAttribute("Y1");
                xml.WriteString(lnscale.Y1.ToString());
                xml.WriteEndAttribute();

                xml.WriteStartAttribute("X2");
                xml.WriteString(lnscale.X2.ToString());
                xml.WriteEndAttribute();

                xml.WriteStartAttribute("Y2");
                xml.WriteString(lnscale.Y2.ToString());
                xml.WriteEndAttribute();

                xml.WriteEndElement();//lnscale
                #endregion Линия масштаба line_scale 
                
                #region Генератор  XML
                 //    .....................
                #endregion Генератор  XML
            
                xml.WriteEndElement();//gfx 
                xml.WriteEndDocument();
                xml.Close();
            }
            //Сохранение в файл
            using (StreamWriter writer = new StreamWriter(stream))
            {
                writer.Write(sw);
                writer.Flush();
                writer.Close();

            }
        }
<!--Создано WebPiket ver 1.20100817.1811-->
<gfx>
  <lnscale Name="line_Scale" X1="978" Y1="813" X2="982" Y2="817" />
  <surve Name="surve_top_1">
    <GeometryGroup>
       <LineGeometry X1="486,149658203125" Y1="412,589233398438" X2="495,5" Y2="409" />
      <LineGeometry X1="491,280883789063" Y1="412,0654296875" X2="495,5" Y2="409" />
    </GeometryGroup>
  </surve>
  <surve Name="surve_top_wall2">
    <GeometryGroup>
       <LineGeometry X1="486,149658203125" Y1="412,589233398438" X2="495,5" Y2="409" />
      <LineGeometry X1="491,280883789063" Y1="412,0654296875" X2="495,5" Y2="409" />
      <LineGeometry X1="483,647216796875" Y1="418,938720703125" X2="491,280883789063" Y2="412,0654296875" />
      <LineGeometry X1="493,34228515625" Y1="439,4326171875" X2="486,149658203125" Y2="412,589233398438" />
      <LineGeometry X1="493,34228515625" Y1="439,4326171875" X2="483,1494140625" Y2="418,533813476563" />
    </GeometryGroup>
  </surve>
  <polyline Name="polyline_3">
    <point X="1040" Y="1039" />
    <point X="1046" Y="1040" />
    <point X="1054" Y="1036" />
    <point X="1071" Y="1023" />
  </polyline>
<line Name="line_4" X1="156" Y1="333" X2="246" Y2="237" />
</gfx>

Комментариев нет:

Отправить комментарий