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 형식으로 호출할 때 오류가 발생합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MaterialDesign의 ComboBox HasClearButton 크기 변경WPF MaterialDesign은 편리하지만 때로는 표시가 너무 크거나 약간 사용하기 쉽습니다. ComboBox를 사용할 때 선택한 버튼을 지우려면 지우기 버튼을 표시할 수 있습니다. 아래와 같은 표시가 됩니다 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.