private ImageMoniker GetCompositedImageMoniker(params ImageCompositionLayer[] layers) { this.AssertIsForeground(); foreach (var compositeImage in _compositeImages) { if (compositeImage.Layers.SequenceEqual(layers)) { return(compositeImage.ImageHandle.Moniker); } } var imageHandle = _imageService.AddCustomCompositeImage( virtualWidth: 16, virtualHeight: 16, layerCount: layers.Length, layers: layers); _compositeImages.Add(new CompositeImage(layers.AsImmutableOrEmpty(), imageHandle)); var moniker = imageHandle.Moniker; return(moniker); }