CustomQuickButton.xaml.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using ivf_tl_Entity.GlobalEntitys;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Collections.ObjectModel;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Navigation;
  16. using System.Windows.Shapes;
  17. namespace ivf_tl_Operate.CustomUserControls
  18. {
  19. /// <summary>
  20. /// CustomQuickButton.xaml 的交互逻辑
  21. /// </summary>
  22. public partial class CustomQuickButton : UserControl
  23. {
  24. /// <summary>
  25. /// 点击快捷定位
  26. /// </summary>
  27. public event Action<ButtonEntity> ClickQuickPositionEvent;
  28. public CustomQuickButton()
  29. {
  30. InitializeComponent();
  31. }
  32. private void KuaiJie_MouseUp(object sender, MouseButtonEventArgs e)
  33. {
  34. if (!(sender is Border border))
  35. {
  36. return;
  37. }
  38. if (!(border.Tag is ButtonEntity markNew))
  39. {
  40. return;
  41. }
  42. ClickQuickPositionEvent?.Invoke(markNew);
  43. }
  44. public List<ButtonEntity> QuickButtonSource
  45. {
  46. get { return (List<ButtonEntity>)GetValue(QuickButtonSourceProperty); }
  47. set { SetValue(QuickButtonSourceProperty, value); }
  48. }
  49. // Using a DependencyProperty as the backing store for QuickButtonSource. This enables animation, styling, binding, etc...
  50. public static readonly DependencyProperty QuickButtonSourceProperty =
  51. DependencyProperty.Register("QuickButtonSource", typeof(List<ButtonEntity>), typeof(CustomQuickButton), new PropertyMetadata(null, new PropertyChangedCallback(QuickButtonSourcePropertyMetadata)));
  52. private static void QuickButtonSourcePropertyMetadata(DependencyObject d, DependencyPropertyChangedEventArgs e)
  53. {
  54. if (!(d is CustomQuickButton source)) return;
  55. source._kuaiJie1_TextBlock.Text = "";
  56. source._kuaiJie2_TextBlock.Text = "";
  57. source._kuaiJie3_TextBlock.Text = "";
  58. source._kuaiJie4_TextBlock.Text = "";
  59. source._kuaiJie5_TextBlock.Text = "";
  60. source._kuaiJie6_TextBlock.Text = "";
  61. source._kuaiJie7_TextBlock.Text = "";
  62. source._kuaiJie1_Border.Tag = null;
  63. source._kuaiJie2_Border.Tag = null;
  64. source._kuaiJie3_Border.Tag = null;
  65. source._kuaiJie4_Border.Tag = null;
  66. source._kuaiJie5_Border.Tag = null;
  67. source._kuaiJie6_Border.Tag = null;
  68. source._kuaiJie7_Border.Tag = null;
  69. source.Visibility = Visibility.Hidden;
  70. if (!(e.NewValue is List<ButtonEntity> aa)) return;
  71. int k = aa.Count;
  72. if (k > 0)
  73. {
  74. source.Visibility = Visibility.Visible;
  75. for (int i = 0; i < k; i++)
  76. {
  77. var item = aa[i];
  78. switch (i)
  79. {
  80. case 0:
  81. source._kuaiJie1_TextBlock.Text = item.buttonName;
  82. source._kuaiJie1_Border.Tag = item;
  83. break;
  84. case 1:
  85. source._kuaiJie2_TextBlock.Text = item.buttonName;
  86. source._kuaiJie2_Border.Tag = item;
  87. break;
  88. case 2:
  89. source._kuaiJie3_TextBlock.Text = item.buttonName;
  90. source._kuaiJie3_Border.Tag = item;
  91. break;
  92. case 3:
  93. source._kuaiJie4_TextBlock.Text = item.buttonName;
  94. source._kuaiJie4_Border.Tag = item;
  95. break;
  96. case 4:
  97. source._kuaiJie5_TextBlock.Text = item.buttonName;
  98. source._kuaiJie5_Border.Tag = item;
  99. break;
  100. case 5:
  101. source._kuaiJie6_TextBlock.Text = item.buttonName;
  102. source._kuaiJie6_Border.Tag = item;
  103. break;
  104. case 6:
  105. source._kuaiJie7_TextBlock.Text = item.buttonName;
  106. source._kuaiJie7_Border.Tag = item;
  107. break;
  108. default:
  109. break;
  110. }
  111. }
  112. }
  113. }
  114. }
  115. }