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(); } }