WPF는 DLL 일반 이미지 리소스 패키지 클래스 라이브러리의 이미지를 참조합니다.

3985 단어 WPF
텍스트:
WPF는 DLL 일반 이미지 리소스 패키지 클래스 라이브러리의 이미지를 참조합니다.
1. WPF 응용 프로그램 설정
이정략.
 
2. 라이브러리 프로젝트 만들기(그림 자원 패키지)
그림 자원 라이브러리 프로젝트 MyImages 만들기,class 삭제 1.cs, 프로젝트 속성의 자원 옵션에서 '이미지' 형식을 선택하고 '자원 추가' 에서 '기존 파일 추가' 를 누르면 이미지를 자원에 추가합니다.액세스 수정자를 Public으로 변경합니다.
 
3. WPF 응용 프로그램에서 라이브러리 항목 참조
WPF에서 MyImages를 통해Properties.Resources.XXX는 이미지에 액세스할 수 있습니다.XXX는 이미지 파일 이름(에셋 이름)입니다.그러나 WPF에서 이미지로 이동하려면 작업이 필요합니다.
 
4. WPF에서 Rectangle 또는 ImageBrush 객체를 채우기 또는 배경으로 사용하는 다른 컨트롤을 만들고 ImageBrush의 ImageSource 속성을 리소스 패키지의 이미지로 설정하는 방법은 다음과 같습니다.
 /// <summary>

        ///     (         )

        /// </summary>

        /// <param name="symbolName"></param>

        /// <returns></returns>

        public static ImageBrush GetImagebrush(string ImageName)

        {

            ImageBrush imageBrush = new ImageBrush();

            System.Resources.ResourceManager rm = ImageLibrary.Properties.Resources.ResourceManager;

            System.Drawing.Bitmap b = (System.Drawing.Bitmap)rm.GetObject(ImageName);

            imageBrush.ImageSource = ToWpfBitmap(b);

            return imageBrush;

        }

      
 public static BitmapSource ToWpfBitmap(Bitmap bitmap)

        {

            using (MemoryStream stream = new MemoryStream())

            {

                //  :          ImageFormat  BMP、JPG、PNG 

                bitmap.Save(stream, ImageFormat.Png);



                stream.Position = 0;

                BitmapImage result = new BitmapImage();

                result.BeginInit();

                // According to MSDN, "The default OnDemand cache option retains access to the stream until the image is needed."

                // Force the bitmap to load right now so we can dispose the stream.

                result.CacheOption = BitmapCacheOption.OnLoad;

                result.StreamSource = stream;

                result.EndInit();

                result.Freeze();

                return result;

            }

        }

            
호출 방법: Rectangle1.Fill=GetImagebrush(ImageName);
변환된 이미지의 원래 형식인 ImageFormat가 올바르게 설정되어 있어야 합니다.원래 그림이 PNG 형식인 경우 BMP 형식으로 호출할 때 오류가 발생합니다.

좋은 웹페이지 즐겨찾기