Отметьте правильный знак на значке файла или папки внизу слева после загрузки, как в Dropbox - PullRequest
2 голосов
/ 19 октября 2011

Предполагая, что вы знаете о выпадающем списке (без проблем, если вы не знаете).В моем настольном приложении есть функция загрузки.Я хочу пометить правильный значок на значке файла в левом нижнем углу после загрузки. ( так же, как Dropbox ).Как я могу это сделать?Что это за хитрость?

1 Ответ

1 голос
/ 25 октября 2011

DropBox - это расширение оболочки, поэтому оно использует значки ОС и накладывает их.

В вашем случае, если это настольное приложение, вы можете наложить свои значки, используя нечто похожее на это:

    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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...