2012-06-19 2 views
1

나는 (this 코드를 사용하여 EMF 파일에서 가져온)를 BitmapSource 1690x214을 가지고, 나는 ToolTip이 이미지를 사용하고 싶습니다. Image를 ToolTip으로 올바르게 사용하는 방법은 무엇입니까?

enter image description here

그래서 내가이 코드 작성 :이 이미지가 그림판을 사용하여 표시됩니다

BitmapSource bmp = myBitmapSource; // "Dk01Light.EMF" 

Image img = new Image() 
{ 
    Source = bmp, 
    Width = bmp.Width, 
    Height = bmp.Height, 
    Stretch = Stretch.Uniform, 
}; 

myTooltip = img; 

을 그리고이 결과 :

enter image description here

당신이 볼 수 있듯이, 오른쪽 및 아래쪽 여백은 완전히 다릅니다. 왜? 이 문제를 어떻게 해결할 수 있습니까?

답변

2

IT는 DPI 문제처럼 보인다. 먼저 이미지 초기화 프로그램에서 너비와 높이를 제거해보십시오. 또한 내용에 맞게 크기가 맞아야합니다.

당신은 또한 수 있도록 다음과 같이 당신이 연결된 코드를 교체하려고 확실 이미지가 제대로 생산되고 있습니다 : 난 그냥`추가

using (System.Drawing.Imaging.Metafile emf = new System.Drawing.Imaging.Metafile(path)) 
using (System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(emf.Width, emf.Height)) 
{ 
    bmp.SetResolution(emf.HorizontalResolution, emf.VerticalResolution); 

    using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp)) 
    { 
     g.DrawImage(emf, 
      new Rectangle(0, 0, emf.Width, emf.Height), 
      new Rectangle(0, 0, emf.Width, emf.Height), 
      GraphicsUnit.Pixel 
     ); 

     return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bmp.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); 
    } 
} 
+0

bmp.SetResolution (emf.HorizontalResolution, emf.VerticalResolution); '그리고 그것은 작동합니다! – Nick

관련 문제