using _20230724_MBJC_upperpc.Common; using _20230724_MBJC_upperpc.Models; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace _20230724_MBJC_upperpc.Views { /// /// FirstPageAnchorControl.xaml 的交互逻辑 /// public partial class FirstPageAnchorControl : UserControl { //字体颜色 public Brush Text_Color { get { return (Brush)GetValue(Text_ColorProperty); } set { SetValue(Text_ColorProperty, value); } } // Using a DependencyProperty as the backing store for _color. This enables animation, styling, binding, etc... public static readonly DependencyProperty Text_ColorProperty = DependencyProperty.Register("Text_Color", typeof(Brush), typeof(FirstPageAnchorControl), new PropertyMetadata(default(Brush), new PropertyChangedCallback(OnPropertyChanged))); /// /// 告警信息 /// public string AlarmInfo { get { return (string)this.GetValue(AlarmInfoProperty); } set { this.SetValue(AlarmInfoProperty, value); } } public static readonly DependencyProperty AlarmInfoProperty = DependencyProperty.Register("AlarmInfo", typeof(string), typeof(FirstPageAnchorControl), new PropertyMetadata(default(string), new PropertyChangedCallback(OnPropertyChanged))); /// /// Beacon /// public BeaconModel Beacon { get { return (BeaconModel)this.GetValue(BeaconProperty); } set { this.SetValue(BeaconProperty, value); } } public static readonly DependencyProperty BeaconProperty = DependencyProperty.Register("Beacon", typeof(BeaconModel), typeof(FirstPageAnchorControl), new PropertyMetadata(default(BeaconModel), new PropertyChangedCallback(OnPropertyChanged))); /// /// 是否可以使用鼠标跟随 /// public bool TBDEnable { get { return (bool)this.GetValue(TBDEnableProperty); } set { this.SetValue(TBDEnableProperty, value); } } public static readonly DependencyProperty TBDEnableProperty = DependencyProperty.Register("TBDEnable", typeof(bool), typeof(FirstPageAnchorControl), new PropertyMetadata(default(bool), new PropertyChangedCallback(OnPropertyChanged))); /// /// 选择那个模型进行显示 /// public int Model_Visibility { get { return (int)GetValue(MModel_VisibilityProperty); } set { SetValue(MModel_VisibilityProperty, value); } } public static readonly DependencyProperty MModel_VisibilityProperty = DependencyProperty.Register("Model_Visibility", typeof(int), typeof(FirstPageAnchorControl), new PropertyMetadata(default(int), new PropertyChangedCallback(OnPropertyChanged))); public static readonly RoutedEvent ButtonClickEvent = EventManager.RegisterRoutedEvent( "ButtonClick", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(FirstPageAnchorControl)); public event RoutedEventHandler ButtonClick { add { AddHandler(ButtonClickEvent, value); } remove { RemoveHandler(ButtonClickEvent, value); } } private void OnButtonClick(object sender, RoutedEventArgs e) { RaiseEvent(new RoutedEventArgs(ButtonClickEvent, this)); } public static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { (d as FirstPageAnchorControl).Refresh(); } public FirstPageAnchorControl() { InitializeComponent(); } private void Refresh() { //将其余值进行赋值 if (Beacon != null) { this.AnchorModel.Rotate_X = Beacon.Beacon_Pitch_Angle; this.AnchorModel.Rotate_Y = Beacon.Beacon_Heading_Angle; this.AnchorModel.Rotate_Z = Beacon.Beacon_Roll_Angle; this.SupportModel.Rotate_X = Beacon.Beacon_Pitch_Angle; this.SupportModel.Rotate_Y = Beacon.Beacon_Heading_Angle; this.SupportModel.Rotate_Z = Beacon.Beacon_Roll_Angle; this.DateTime.Text = Beacon.Datetime.ToString("yyyy-MM-dd HH:mm:ss"); this.TextID.Text = Beacon.ID + ""; this.TextJD.Text = Beacon.Beacon_JD + "°"; this.TextWD.Text = Beacon.Beacon_WD + "°"; this.TextSD.Text = Beacon.Beacon_Depth + "米"; this.DWJL.Text = Beacon.Position_Distance + "米"; } //是否可以使用鼠标跟随 this.AnchorModel.TBDEnable = TBDEnable; this.SupportModel.TBDEnable = TBDEnable; //设置字体颜色和字体大小 this.TextID.Foreground = this.Text_Color; //显示锚的模型还是基准点的模型 if (Model_Visibility == 1) { AnchorModel.Visibility = Visibility.Visible; SupportModel.Visibility = Visibility.Collapsed; } else if (Model_Visibility == 2) { AnchorModel.Visibility = Visibility.Collapsed; SupportModel.Visibility = Visibility.Visible; } //区分模型在左还是在右 //if (Model_Position == 0) //{ // Grid.SetColumn(AnchorModel, 0); // Grid.SetColumn(SupportModel, 0); // Grid.SetColumn(Data_Area, 1); // grid.ColumnDefinitions[0].Width = new GridLength(3, GridUnitType.Star); // grid.ColumnDefinitions[1].Width = new GridLength(2, GridUnitType.Star); //} //else if (Model_Position == 1) //{ // Grid.SetColumn(AnchorModel, 1); // Grid.SetColumn(SupportModel, 1); // Grid.SetColumn(Data_Area, 0); // grid.ColumnDefinitions[0].Width = new GridLength(2, GridUnitType.Star); // grid.ColumnDefinitions[1].Width = new GridLength(3, GridUnitType.Star); //} } } }