programing

코드 뒤의 이미지 소스 변경(Wpf)

closeapi 2023. 4. 16. 15:10
반응형

코드 뒤의 이미지 소스 변경(Wpf)

이미지 소스를 동적으로 설정해야 합니다.이미지는 네트워크상의 어딘가에 있습니다.다음은 제 코드입니다.

BitmapImage logo = new BitmapImage();
logo.BeginInit();
logo.UriSource = new Uri(@"pack://application:,,,\\myserver\\folder1\\Customer Data\\sample.png");
logo.EndInit(); // Getting the exception here
ImageViewer1.Source = logo;

예외:

URI 접두사가 인식되지 않습니다.

위의 솔루션 중 어느 것도 나에게 효과가 없었다.하지만 이것은 다음과 같습니다.

myImage.Source = new BitmapImage(new Uri(@"/Images/foo.png", UriKind.Relative));

한 줄만 있으면 됩니다.

ImageViewer1.Source = new BitmapImage(new Uri(@"\myserver\folder1\Customer Data\sample.png"));

여기서 사용하는 팩 구문은 응용 프로그램 내의 리소스로 포함된 이미지에 대한 것이지 파일 시스템의 느슨한 파일에 대한 것이 아닙니다.

실제 경로를 URISource에 전달하기만 하면 됩니다.

logo.UriSource = new Uri(@"\\myserver\folder1\Customer Data\sample.png");

응용 프로그램에 이미지를 추가하는 대신 폴더에서 이미지를 가져와야 했기 때문에 어떤 방법도 효과가 없었습니다.다음 코드가 작동했습니다.

TestImage.Source = GetImage("/Content/Images/test.png")

private static BitmapImage GetImage(string imageUri)
{
    var bitmapImage = new BitmapImage();
    
    bitmapImage.BeginInit();
    bitmapImage.UriSource = new Uri("pack://siteoforigin:,,,/" + imageUri,             UriKind.RelativeOrAbsolute);
    bitmapImage.EndInit();
    
    return bitmapImage;
} 

넌 틀렸어! 왜? 이 코드만 작동하면 돼:

(이미지 표시) / C# Img is : 이미지 상자

이 상태를 그대로 유지합니다.변경하지 않고 ("ms-appx://") 이 코드는 앱명이 아닙니다.이미지는 프로젝트의 폴더입니다.dog.png는 폴더 내의 파일입니다.또한 dog.png도 폴더 내의 파일이며, 파일 "images"는 "ms-appx://images/png" 입니다.


private void Button_Click(object sender, RoutedEventArgs e)
    {
         img.Source = new BitmapImage(new Uri("ms-appx:///Images/dog.png"));
    }

언급URL : https://stackoverflow.com/questions/3787137/change-image-source-in-code-behind-wpf

반응형