public bool OpenXap(string fp) { xap = new Xap(fp); xap.Open(); dgXap.ItemsSource = xap.List; dAppName.Text = xap.Meta["Title"]; try { dImage.Source = StaticBitmap.Read(xap.GetIcon()); } catch (Exception) { } dAppProp.Text = string.Format("Version {3} ({4})\rAuthor: {0}\rPublisher: {2}", xap.Meta["Author"], xap.Meta["Genre"], xap.Meta["Publisher"], xap.Meta["Version"], xap.Meta["RuntimeType"], xap.Meta["ProductID"]); menu_pack.IsEnabled = true; leftCol.MinWidth = 5; leftCol.Width = new GridLength(300); menu_close.IsEnabled = true; menu_savexap.IsEnabled = true; SaveRecent("RecentXap", xap.Source); LoadRecent("RecentXap", "menu_recentxap"); return(true); }
void loadFile() { bool eSave = false; pwner.SetStatus(string.Empty); img.Source = null; txtEditor.Visibility = Visibility.Collapsed; binEditor.Visibility = Visibility.Collapsed; imgPane.Visibility = Visibility.Collapsed; disasm.Visibility = Visibility.Collapsed; compi.Visibility = Visibility.Collapsed; iledit.Visibility = Visibility.Collapsed; resedit.Visibility = Visibility.Collapsed; nd = null; List <string> viewAsText = new List <string>() { "xaml", "xml" }; List <string> viewAsImage = new List <string>() { "png", "bmp", "jpg", "ico" }; long fl = new System.IO.FileInfo(sourcefile).Length; pwner.SetStatus(sourcefile, true); string stat = string.Format("{0:0} {1}", (fl > 1024 ? (fl / 1024) : fl), (fl > 1024 ? "Kb" : "bytes")); if (et == EditorType.Default) { string e = Path.GetExtension(sourcefile).Substring(1); if (viewAsText.Contains(e)) { et = EditorType.Text; } else if (viewAsImage.Contains(e)) { et = EditorType.Image; } else if (e == "dll") { et = EditorType.Assembly; } else { et = EditorType.Binary; } } switch (et) { case EditorType.Text: eSave = true; try { tbEdit.Text = System.IO.File.ReadAllText(sourcefile, Encoding.UTF8); } catch (Exception e) { MessageBox.Show(e.Message); } txtEditor.Visibility = Visibility.Visible; break; case EditorType.Compiler: eSave = true; compilerCode.Text = System.IO.File.ReadAllText(sourcefile, Encoding.UTF8); compi.Visibility = Visibility.Visible; break; case EditorType.Image: BitmapImage bi = StaticBitmap.Read(sourcefile); img.Source = bi; stat = string.Format("{0:0}x{1:0}px | {2}", bi.Width, bi.Height, stat); imgPane.Visibility = Visibility.Visible; break; case EditorType.Assembly: nd = new NetDasm(this); nd.LoadAsm(sourcefile); disasm.Visibility = Visibility.Visible; Disassemble(); eSave = true; break; case EditorType.Binary: Be.Windows.Forms.HexBox hb = new Be.Windows.Forms.HexBox() { ByteProvider = new Be.Windows.Forms.FileByteProvider(sourcefile), ByteCharConverter = new Be.Windows.Forms.DefaultByteCharConverter(), BytesPerLine = 16, UseFixedBytesPerLine = true, StringViewVisible = true, VScrollBarVisible = true }; hb.TextChanged += delegate(object sender, EventArgs ev) { NeedsSave = true; }; binHost.Child = hb; binEditor.Visibility = Visibility.Visible; break; case EditorType.Resource: resedit.Visibility = Visibility.Visible; break; } pwner.SetStatus(stat); CanSave = eSave; pwner.menu_save.IsEnabled = CanSave; OnFileLoaded(); }