PageRenderTime 47ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/Main/src/DevSamples/BitmapBasedGraphSample/Window1.xaml.cs

#
C# | 68 lines | 60 code | 5 blank | 3 comment | 0 complexity | dc9bfb30aff47df673776a33ab193da5 MD5 | raw file
Possible License(s): CC-BY-SA-3.0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Windows;
  6. using System.Windows.Controls;
  7. using System.Windows.Data;
  8. using System.Windows.Documents;
  9. using System.Windows.Input;
  10. using System.Windows.Media;
  11. using System.Windows.Media.Imaging;
  12. using System.Windows.Navigation;
  13. using System.Windows.Shapes;
  14. using Microsoft.Research.DynamicDataDisplay;
  15. using System.Threading;
  16. namespace BitmapBasedGraphSample
  17. {
  18. /// <summary>
  19. /// Interaction logic for Window1.xaml
  20. /// </summary>
  21. public partial class Window1 : Window
  22. {
  23. public Window1()
  24. {
  25. InitializeComponent();
  26. }
  27. }
  28. public class BitmapBasedSampleGraph : BitmapBasedGraph
  29. {
  30. protected override BitmapSource RenderFrame(DataRect dataRect, Rect output)
  31. {
  32. Grid grid = new Grid();
  33. grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
  34. grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
  35. TextBlock lt = new TextBlock
  36. {
  37. VerticalAlignment = VerticalAlignment.Top,
  38. HorizontalAlignment = HorizontalAlignment.Left,
  39. Text = String.Format("({0},{1})", dataRect.XMin, dataRect.YMax)
  40. };
  41. grid.Children.Add(lt);
  42. Grid.SetRow(lt, 0);
  43. TextBlock rb = new TextBlock
  44. {
  45. VerticalAlignment = VerticalAlignment.Bottom,
  46. HorizontalAlignment = HorizontalAlignment.Right,
  47. Text = String.Format("({0},{1})", dataRect.XMax, dataRect.YMin)
  48. };
  49. grid.Children.Add(rb);
  50. Grid.SetRow(rb, 1);
  51. Border border = new Border();
  52. border.BorderThickness = new Thickness(3);
  53. border.BorderBrush = Brushes.Blue;
  54. border.Child = grid;
  55. RenderTargetBitmap rtb = new RenderTargetBitmap((int)output.Width, (int)output.Height, 96, 96, PixelFormats.Default);
  56. border.Measure(new Size(output.Width, output.Height));
  57. border.Arrange(output);
  58. rtb.Render(border);
  59. Thread.Sleep(1000);
  60. return rtb;
  61. }
  62. }
  63. }