TreeCanvasView.xaml.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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 System.ComponentModel.Composition;
  15. using Infrastructure;
  16. using BehaviorTree;
  17. namespace TreeCanvas
  18. {
  19. /// <summary>
  20. /// TreeCanvasView.xaml 的交互逻辑
  21. /// </summary>
  22. [ViewExport(RegionName = "TreeCanvasRegion")]
  23. [PartCreationPolicy(CreationPolicy.NonShared)]
  24. public partial class TreeCanvasView : UserControl
  25. {
  26. public TreeCanvasView()
  27. {
  28. InitializeComponent();
  29. }
  30. [Import]
  31. TreeCanvasViewModel ViewModel
  32. {
  33. get
  34. {
  35. return this.DataContext as TreeCanvasViewModel;
  36. }
  37. set
  38. {
  39. this.DataContext = value;
  40. }
  41. }
  42. private void NewNode_Executed(object sender, ExecutedRoutedEventArgs e)
  43. {
  44. }
  45. private void btnDynamic_Click(object sender, RoutedEventArgs e)
  46. {
  47. DrawDynamicTree();
  48. }
  49. private void DrawDynamicTree()
  50. {
  51. tc.Clear();
  52. Button btnA = new Button();
  53. Button btnB = new Button();
  54. Button btnC = new Button();
  55. Button btnD = new Button();
  56. Button btnE = new Button();
  57. Button btnF = new Button();
  58. Button btnG = new Button();
  59. Button btnH = new Button();
  60. Button btnI = new Button();
  61. Button btnJ = new Button();
  62. Button btnK = new Button();
  63. Button btnL = new Button();
  64. Button btnM = new Button();
  65. Button btnN = new Button();
  66. Button btnO = new Button();
  67. btnA.Content = "A";
  68. btnB.Content = "B";
  69. btnC.Content = "C";
  70. btnD.Content = "D";
  71. btnE.Content = "E";
  72. btnF.Content = "F";
  73. btnG.Content = "G";
  74. btnH.Content = "H";
  75. btnI.Content = "I";
  76. btnJ.Content = "J";
  77. btnK.Content = "K";
  78. btnL.Content = "L";
  79. btnM.Content = "M";
  80. btnN.Content = "N";
  81. btnO.Content = "O";
  82. btnA.Click += new RoutedEventHandler(btn_Click);
  83. btnB.Click += new RoutedEventHandler(btn_Click);
  84. btnC.Click += new RoutedEventHandler(btn_Click);
  85. btnD.Click += new RoutedEventHandler(btn_Click);
  86. btnE.Click += new RoutedEventHandler(btn_Click);
  87. btnF.Click += new RoutedEventHandler(btn_Click);
  88. btnG.Click += new RoutedEventHandler(btn_Click);
  89. btnH.Click += new RoutedEventHandler(btn_Click);
  90. btnI.Click += new RoutedEventHandler(btn_Click);
  91. btnJ.Click += new RoutedEventHandler(btn_Click);
  92. btnK.Click += new RoutedEventHandler(btn_Click);
  93. btnL.Click += new RoutedEventHandler(btn_Click);
  94. btnM.Click += new RoutedEventHandler(btn_Click);
  95. btnN.Click += new RoutedEventHandler(btn_Click);
  96. btnO.Click += new RoutedEventHandler(btn_Click);
  97. TreeNode tnSubtreeRootO = tc.AddRoot(btnO);
  98. TreeNode tnSubtreeRootE = tc.AddNode(btnE, tnSubtreeRootO);
  99. tc.AddNode(btnF, tnSubtreeRootO);
  100. TreeNode tnSubtreeRootN = tc.AddNode(btnN, tnSubtreeRootO);
  101. TreeNode tnSubtreeRootD = tc.AddNode(btnD, tnSubtreeRootE);
  102. tc.AddNode(btnA, tnSubtreeRootE);
  103. tc.AddNode(btnB, tnSubtreeRootD);
  104. tc.AddNode(btnC, tnSubtreeRootD);
  105. tc.AddNode(btnG, tnSubtreeRootN);
  106. TreeNode tnSubtreeRootM = tc.AddNode(btnM, tnSubtreeRootN);
  107. tc.AddNode(btnH, tnSubtreeRootM);
  108. tc.AddNode(btnI, tnSubtreeRootM);
  109. tc.AddNode(btnJ, tnSubtreeRootM);
  110. tc.AddNode(btnK, tnSubtreeRootM);
  111. tc.AddNode(btnL, tnSubtreeRootM);
  112. }
  113. private void btn_Click(object sender, RoutedEventArgs e)
  114. {
  115. Button btn = e.OriginalSource as Button;
  116. if (btn != null)
  117. {
  118. TreeNode tn = (TreeNode)(btn.Parent);
  119. tn.Collapsed = !tn.Collapsed;
  120. }
  121. }
  122. }
  123. }