2011-10-19 60 views
2

假設你知道關於下拉框(如果你不知道沒有問題)。

在我的桌面應用程序中有一個上傳功能。我想在上傳後在左下角標記正確的文件圖標(與Dropbox的相同)。

我該怎麼做?那是什麼竅門?
在Dropbox上傳文件或文件夾圖標後,在文件或文件夾圖標上標記正確的標記

+0

可能重複的[殼牌圖標疊加(C#)]的(http://stackoverflow.com/questions/843506/shell-icon-overlay-c) –

+0

感謝一個想法。 – Priyank

回答

1

DropBox是一個外殼擴展,因此它使用OS圖標並覆蓋它們。

在你的情況,如果它是一個桌面應用程序,你可以使用類似這個覆蓋你的圖標:

private static object mOverlayLock = new object(); 
    public static Image GetOverlayedImage(Image baseImage, Image overlay) 
    { 
     Image im = null; 

     lock (mOverlayLock) 
     { 
      try 
      { 
       im = baseImage.Clone() as Image; 

       Graphics g = Graphics.FromImage(im); 
       g.DrawImage(overlay, 0, 0, im.Width, im.Height); 
       g.Dispose(); 
      } 
      catch 
      { 
       // LOG EXCEPTION!! 
      } 
     } 

     return im; 
    } 

這是一個基本的例子。你也可以使用疊加位置,(topleft,middleleft ...),這需要更多的編程。

然後,從您的應用程序中,您可以調用此方法來獲取結果圖像。例如

... 
Image folderIcon = GetFolderIcon(); 
Image upToDateOverlay = GetUpToDateOverlay(); 
Image folderUptoDate = GetOlverlayedImage(folderIcon, upToDateOverlay); 
// Then assign this image to your control item (treelistnode, listViewnode, whatever) 
+0

感謝丹尼爾...我知道了..但你能稍微解釋一下,我該如何實現這個功能?(我需要認真對待這個功能) – Priyank

+0

嗨,看看我的編輯。 –

+0

對不起,遲到的回覆..我正在度假。感謝編輯。 – Priyank