0

こんにちは、openfiledialogを開いて新しい画像を選択して画像を変更したい..これはソースを変更することで..しかし、うまくいきません..助けていただけますか? Paginaholder は私のイメージです..

private void pdfOpenen()
{
    Microsoft.Win32.OpenFileDialog d = new Microsoft.Win32.OpenFileDialog();
    d.FileName = "Document";//begin map 
    Nullable<bool> pad = d.ShowDialog();
    //Controleren of er een bestand geselecteerd werd
    if (pad == true)
    {
        PaginaHolder.Source = BitmapFromUri(new Uri(pad, UriKind.Relative));
    }
}
public static ImageSource BitmapFromUri(Uri source)
        {
            var bitmap = new BitmapImage();
            bitmap.BeginInit();
            bitmap.UriSource = source;
            bitmap.CacheOption = BitmapCacheOption.OnLoad;
            bitmap.EndInit();
            return bitmap;
        }
4

2 に答える 2

1

対処する必要があるいくつかの事柄:

PaginaHolder.Source = BitmapFromUri(new Uri(pad, UriKind.Relative));

具体的には:

new Uri(pad, UriKind.Relative)

null 許容 bool をパラメーターとして受け取る Uri コンストラクターはありません。使用する:

PaginaHolder.Source = new BitmapImage( new Uri( d.FileName ) );

そして、ここに完全に機能する例があります:

var d = new OpenFileDialog();
d.Title = "Select a picture";
d.Filter = "All supported graphics|*.jpg;*.jpeg;*.png|JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|Portable Network Graphic (*.png)|*.png";
if( d.ShowDialog() == true )
{
    PaginaHolder.Source = new BitmapImage( new Uri( d.FileName ) );
}

メソッドを使用することもできますBitmapFromUri

PaginaHolder.Source = BitmapFromUri( new Uri( d.FileName ) );
于 2013-02-14T17:41:48.407 に答える
0

正常に動作するコンバーターを使用して、pdfドキュメントを個別の画像に変換します。新しいPDFドキュメントを開くと、変換によって前の最初の画像が削除され、新しい画像がマップに追加されます。これは正常に動作しますが、アプリケーションは引き続き表示されます。私の前の画像、前の画像がすでに私のデバッグマップから消えているとき、これはどのようにできますか..?これは私のコードです:

Microsoft.Win32.OpenFileDialog d = new Microsoft.Win32.OpenFileDialog();
d.FileName = "Document";//begin map 
d.DefaultExt = ".pdf";
d.Filter = "PDF Files(*.pdf)|*.pdf";
Nullable<bool> pad = d.ShowDialog();
pdfPad = d.FileName;
File.Delete(AppDomain.CurrentDomain.BaseDirectory+"1.jpg");
pdfconverter.convertPDF(1, pdfPad);
pdfAantalPaginas = pdfconverter.getAantalPaginas(pdfPad);
Uri test = new Uri(AppDomain.CurrentDomain.BaseDirectory + "1.jpg");
PaginaHolder.Source = BitmapFromUri(test);
PaginaHolder.Source.Freeze();
于 2013-02-15T12:49:22.920 に答える