Ejemplo n.º 1
0
        Bitmap PrepareBadgeViewBitmap(SolutionBadgeView badgeView, System.Windows.Size size)
        {
            try
            {
                (badgeView).Measure(size);
                (badgeView).Arrange(new System.Windows.Rect(size));
                (badgeView).Refresh();

                RenderTargetBitmap targetBitmap = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96.0, 96.0, PixelFormats.Default);

                targetBitmap.Render(badgeView);

                BmpBitmapEncoder encoder = new BmpBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(targetBitmap));

                MemoryStream ms = new MemoryStream();

                encoder.Save(ms);

                ms.Flush();

                var badgeBitmap = System.Drawing.Image.FromStream(ms) as Bitmap;

                return badgeBitmap;
            }
            catch (Exception ex)
            {
                ex.TryAddContextData("size", () => size);
                throw;
            }
        }
Ejemplo n.º 2
0
        void RefreshIconicBitmap(SolutionBadgeView view)
        {
            lock (Sync)
            {
                if (CurrentBadgeIconicBitmap != null)
                {
                    CurrentBadgeIconicBitmap.Dispose();
                }

                CurrentBadgeIconicBitmap = PrepareBadgeViewBitmap(view, new System.Windows.Size(196, 106));
            }
        }
Ejemplo n.º 3
0
        SolutionBadgeView GetSolutionBadgeView()
        {
            var view = new SolutionBadgeView();

            // NOTE:    this will be used outside of application Visual Tree
            //          must initialize manually
            view.BeginInit();
            view.EndInit();
            view.ApplyTemplate();

            var all_properties = new Dictionary<string, object>();

            all_properties.AddOrUpdateFrom(CurrentBadgeInfo);
            all_properties.AddOrUpdateFrom(CurrentThemeInfo);

            view.ViewModel.RefreshFrom(all_properties);

            return view;
        }