3

名前が「xx」のプロジェクトがあります。このパスを持つフォルダー「images」を作成します:xx\bin\Debug\images\

画像には写真が 1 つだけ含まれています。その名前は「1.jpg」です。MainWindow には Image コントロールが含まれています。画像ソースをロードするようにこのコードを設定しましたが、なぜ機能しませんか??:

private void Image_MouseDown(object sender, MouseButtonEventArgs e)
{
    Image i = sender as Image; ;
    BitmapImage b = new BitmapImage(new Uri(@"images\1.jpg",UriKind.Relative));
    i.Source=b;
}

コードで画像ソースをロードするにはどうすればよいですか?? 前もって感謝します :)

4

2 に答える 2

2

1.jpgプロジェクトのimagesフォルダに追加し、のプロパティをリソースに設定する必要1.jpgがあります。リソースをロードするには、packURI規則を使用します。

private void Image_MouseDown(object sender, MouseButtonEventArgs e)
{
    Image i = sender as Image; ;
    BitmapImage b = new BitmapImage(new Uri(@"pack://application:,,,/" 
         + Assembly.GetExecutingAssembly().GetName().Name 
         + ";component/" 
         + "Images/1.jpg", UriKind.Absolute)); 
    i.Source=b;
}
于 2012-05-18T14:55:56.907 に答える
0

これを試して

public void Image_MouseDown(object sender, RoutedEventArgs e)
{
    OpenFileDialog dlg = new OpenFileDialog();
    dlg.InitialDirectory = "c:\\";
    dlg.Filter = "Image files (*.jpg)|*.jpg|All Files (*.*)|*.*";
    dlg.RestoreDirectory = true;
    Nullable<bool> result = dlg.ShowDialog();                        

    if (result == true)
    {
        BitmapImage bitmap = new BitmapImage();
        Image img = sender as Image;
        bitmap.BeginInit();
        bitmap.UriSource = new Uri(dlg.FileName);
        bitmap.EndInit();
        img.Source = bitmap;
    }
}
于 2012-05-23T06:22:31.023 に答える