//保存目录框过长自动拉到最前面 private void FolderBox_SourceUpdated(object sender, System.Windows.Data.DataTransferEventArgs e) { FolderBox.ScrollToHome(); }
/// <summary> /// Export selected assets /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ExportBox_Click(object sender, EventArgs e) { Close(); XmlWriter doc = null; MemoryStream ms = null; XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.OmitXmlDeclaration = false; settings.IndentChars = "\t"; settings.Encoding = ASCIIEncoding.ASCII; if (ToBankBox.Checked) { // Export to a bank if (SaveFileBox.ShowDialog() != DialogResult.OK) { return; } } else { // Export to a folder if (FolderBox.ShowDialog() != DialogResult.OK) { return; } // For each node foreach (TreeNode node in TreeviewBox.Nodes[0].Nodes) { // Number of asset saved int assetcount = 0; ms = new MemoryStream(); doc = XmlWriter.Create(ms, settings); doc.WriteStartDocument(true); doc.WriteStartElement("bank"); // For each subnode checked foreach (TreeNode subnode in node.Nodes) { if (!subnode.Checked) { continue; } // Invoke the generic method like this : provider.Save<[Asset Type]>(XmlNode node); object[] args = { doc }; Type[] types = new Type[] { typeof(XmlWriter) }; // mi = provider.GetType().GetMethod("Save", types).MakeGenericMethod(type); // mi.Invoke(provider, args); ResourceManager.GetAsset <BitmapFont>(subnode.Text); assetcount++; } // No asset saved if (assetcount == 0) { continue; } doc.WriteEndElement(); doc.WriteEndDocument(); doc.Flush(); //SaveResource(zip, type.Name + ".xml", ms.ToArray()); } } }