protected override Icon GetItem(FileInfo file)
        {
            if (file.Extension.Equals(".css", StringComparison.InvariantCultureIgnoreCase))
            {
                return(null);
            }

            //first, see if we've already got this sprite definition
            if (_sprites.Any(x => x.Key == file))
            {
                return(null);
            }

            //see if there is an associated .CSS file for this current file

            //ensures we only resolve the files once
            if (_resolvedFiles == null)
            {
                _resolvedFiles = AllowedExtensions.SelectMany(x => RootFolder.GetFiles(x, SearchOption.AllDirectories)).ToArray();
            }

            var spriteDefinition = _resolvedFiles
                                   .Where(x => x.Name.EndsWith(".css", StringComparison.InvariantCultureIgnoreCase))
                                   .Where(x => Path.GetExtension(file.Name) != Path.GetExtension(x.Name))
                                   .Where(x => Path.GetFileNameWithoutExtension(file.Name) == Path.GetFileNameWithoutExtension(x.Name))
                                   .SingleOrDefault();

            if (spriteDefinition != null)
            {
                _sprites.Add(new KeyValuePair <FileInfo, FileInfo>(file, spriteDefinition));
                //since it's a Sprite, don't include it in the results
                return(null);
            }

            return(base.GetItem(file));
        }