2012-02-13 56 views
1

我正在开发一个Windows项目,但我真的坚持与图标覆盖的概念。我已经搜索了许多文章,但最后大多数委员提出以下链接:如何实现图标覆盖

但我不明白如何从C#中使用它。你可以帮我吗?

谢谢

+0

你们是不是要在shell(即Windows资源管理器)中添加叠加,或者是你想使用的图标叠加在自己的ListView一个WinForms应用程序里面? (或者你使用WPF或Silverlight或LightSwitch?) – 2012-02-13 13:27:56

回答

1

下面是C#中的一个例子,尽管我对它的更多代码转储表示歉意,而不是解释如何去做。

http://alski.net/post/2012/01/11/WPF-Icon-Overlays.aspx

最重要的一点是这里面需要一个视觉并将其转换成位图。 IconOverlay绑定到生成的位图。

public static BitmapSource GenerateBitmapSource(Visual visual, double renderWidth, double renderHeight) 
    { 
     var bmp = new RenderTargetBitmap((int)renderWidth, (int)renderHeight, 96, 96, PixelFormats.Pbgra32); 
     var dv = new DrawingVisual(); 
     using (DrawingContext dc = dv.RenderOpen()) 
     { 
      dc.DrawRectangle(new VisualBrush(visual), null, new Rect(0, 0, renderWidth, renderHeight)); 
     } 
     bmp.Render(dv); 
     return bmp; 
    }