Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.10 KB | None | 0 0
  1. public interface IWpfControl
  2. {
  3. string Name { get; set; }
  4. double ActualHeight { get; }
  5. double ActualWidth { get; }
  6. double Height { get; set; }
  7. double Width { get; set; }
  8. Size InitialSize { get; set; }
  9. }
  10.  
  11. public interface IWpfControlWithItems : IWpfControl
  12. {
  13. ItemCollection Items { get; }
  14. }
  15.  
  16. public class WpfControlFactory
  17. {
  18. public static IWpfControl CreateWpfControl(WpfControl wpfControl)
  19. {
  20. object[] controlItems = null;
  21. IWpfControl control = null;
  22. switch (wpfControl)
  23. {
  24. case WpfControl.Button:
  25. control = new WpfButton { InitialSize = new Size(85, 20) };
  26. break;
  27. case WpfControl.CheckBox:
  28. control = new WpfCheckBox { InitialSize = new Size(85, 20) };
  29. break;
  30. case WpfControl.TextBox:
  31. control = new WpfTextBox { InitialSize = new Size(75, 20) };
  32. break;
  33. case WpfControl.ComboBox:
  34. break;
  35. case WpfControl.ListBox:
  36. control = new WpfListBox { InitialSize = new Size(100, 110) };
  37. controlItems = CreateListItems();
  38. break;
  39. case WpfControl.GroupBox:
  40. control = new WpfGroupBox { InitialSize = new Size(120, 100) };
  41. break;
  42. case WpfControl.RadioButton:
  43. control = new WpfRadioButton { InitialSize = new Size(85, 20) };
  44. break;
  45. case WpfControl.TextBlock:
  46. control = new WpfTextBlock { InitialSize = new Size(75, 20) };
  47. break;
  48. case WpfControl.Image:
  49. control = new WpfImage { InitialSize = new Size(100, 100) };
  50. break;
  51. case WpfControl.HScrollBar:
  52. control = new WpfHScrollBar { InitialSize = new Size(130, 20), Orientation = Orientation.Horizontal };
  53. break;
  54. case WpfControl.VScrollBar:
  55. control = new WpfVScrollBar { InitialSize = new Size(20, 130), Orientation = Orientation.Horizontal };
  56. break;
  57. case WpfControl.Slider:
  58. control = new WpfSlider { InitialSize = new Size(130, 20) };
  59. break;
  60. case WpfControl.ProgressBar:
  61. control = new WpfProgressBar { InitialSize = new Size(130, 15), Value = 75};
  62. break;
  63. case WpfControl.ListView:
  64. var gridView = new GridView();
  65. gridView.Columns.Add(new GridViewColumn
  66. {
  67. Header = "Items",
  68. });
  69. control = new WpfListView { InitialSize = new Size(100, 110), View = gridView };
  70. controlItems = CreateListItems();
  71. break;
  72. case WpfControl.TreeView:
  73. control = new WpfTreeView { InitialSize = new Size(150, 100) };
  74. controlItems = CreateTreeViewItems();
  75. break;
  76. case WpfControl.TabControl:
  77. control = new WpfTabControl { InitialSize = new Size(120, 80) };
  78. controlItems = CreateTabControlItems();
  79. break;
  80. case WpfControl.RichTextBox:
  81. control = new WpfRichTextBox { InitialSize = new Size(80, 80) };
  82. break;
  83. case WpfControl.DatePicker:
  84. control = new WpfDatePicker { InitialSize = new Size(130, 25) };
  85. break;
  86. }
  87.  
  88. if (control != null)
  89. {
  90. control.Name = Consts.DefaultEaControlName;
  91. }
  92.  
  93. var controlWithItems = control as IWpfControlWithItems;
  94. if (controlWithItems != null)
  95. {
  96. AddElementToItem(controlWithItems, controlItems);
  97. }
  98.  
  99. return control;
  100. }
  101.  
  102. private static void AddElementToItem(IWpfControlWithItems wpfControl, params object[] items)
  103. {
  104. foreach (var item in items)
  105. {
  106. wpfControl.Items.Add(item);
  107. }
  108. }
  109.  
  110. private static object[] CreateTreeViewItems()
  111. {
  112. var rootExpandedNode = new TreeViewItem { Header = "Expanded Node", IsExpanded = true };
  113. var expandedNode = new TreeViewItem { Header = "Expanded Node", IsExpanded = true };
  114. var collapsedNode = new TreeViewItem { Header = "Collapsed Node", IsExpanded = false };
  115. var leaf1 = new TreeViewItem { Header = "Leaf" };
  116. var leaf2 = new TreeViewItem { Header = "Leaf" };
  117. var leaf3 = new TreeViewItem { Header = "Leaf" };
  118.  
  119. expandedNode.Items.Add(leaf1);
  120. expandedNode.Items.Add(leaf2);
  121. rootExpandedNode.Items.Add(expandedNode);
  122. rootExpandedNode.Items.Add(collapsedNode);
  123.  
  124. return new object[] { rootExpandedNode, leaf3};
  125. }
  126.  
  127. private static object[] CreateTabControlItems()
  128. {
  129. return new object[]
  130. {
  131. new TabItem { Header = "Tab1"} ,
  132. new TabItem { Header = "Tab2" },
  133. new TabItem { Header = "Tab3" }
  134. };
  135. }
  136.  
  137. private static object[] CreateListItems()
  138. {
  139. return new object[] { "item1", "item2", "item3", "item4", "item5" };
  140. }
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement