private void btnOpen_Click(object sender, RoutedEventArgs e) { CommonOpenFileDialog openDialog = new CommonOpenFileDialog(); openDialog.ShowPlacesList = true; openDialog.Multiselect = false; openDialog.IsFolderPicker = false; openDialog.AddToMostRecentlyUsedList = true; openDialog.Filters.Add(new CommonFileDialogFilter("PNG images", "*.png")); if (openDialog.ShowDialog(this) == CommonFileDialogResult.Ok) { soureFilePath = openDialog.FileName; // get comment meta using (FileStream fileStream = new FileStream(soureFilePath, FileMode.Open, FileAccess.Read)) { pngReader = new PngReader(fileStream); // 参考自Hjg.Pngcs的SampleCustomChunk项目 // get last line: this forces loading all chunks pngReader.ReadChunksOnly(); tblkComment.Text = pngReader.GetMetadata().GetTxtForKey(Key_SemanticInfo); pngReader.End(); fileStream.Close(); } image.BeginInit(); image.Source = new BitmapImage(new Uri(soureFilePath)); image.EndInit(); } }