CreateLegendImages ( IEnumerable <LegendControlBase> oLegendControls, Double dImageWidth, out IEnumerable <Image> oImages, out Double dTotalImageHeight ) { Debug.Assert(oLegendControls != null); Debug.Assert(dImageWidth > 0); AssertValid(); List <Image> oLegendImages = new List <Image>(); oImages = oLegendImages; dTotalImageHeight = 0; foreach (LegendControlBase oLegendControl in oLegendControls) { if (oLegendControl.Visible && oLegendControl.Height > 0) { System.Windows.Media.Imaging.BitmapSource oBitmapSource; using (System.Drawing.Bitmap oBitmap = oLegendControl.DrawOnBitmap( (Int32)Math.Ceiling(dImageWidth))) { oBitmapSource = WpfGraphicsUtil.BitmapToBitmapSource( oBitmap); } Image oLegendImage = new Image(); oLegendImage.Source = oBitmapSource; oLegendImage.Width = dImageWidth; oLegendImage.Measure(new Size( dImageWidth, Double.PositiveInfinity)); oLegendImages.Add(oLegendImage); dTotalImageHeight += oLegendImage.DesiredSize.Height; } } }