using _20230724_MBJC_upperpc.Models; using System; using System.Collections.Generic; using System.Linq; 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 { /// /// FirstPageBuoyControl.xaml 的交互逻辑 /// public partial class FirstPageBuoyControl : 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(FirstPageBuoyControl), new PropertyMetadata(default(Brush), 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(FirstPageBuoyControl), 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(FirstPageBuoyControl), new PropertyMetadata(default(bool), new PropertyChangedCallback(OnPropertyChanged))); public static readonly RoutedEvent ButtonClickEvent = EventManager.RegisterRoutedEvent( "ButtonClick", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(FirstPageBuoyControl)); public event RoutedEventHandler ButtonClick { add { AddHandler(ButtonClickEvent, value); } remove { RemoveHandler(ButtonClickEvent, value); } } private void OnButtonClick(object sender, RoutedEventArgs e) { RaiseEvent(new RoutedEventArgs(ButtonClickEvent, this)); } #region ///// ///// 俯仰角 ///// //public float Rotate_X //{ // get { return (float)this.GetValue(Rotate_XProperty); } // set { this.SetValue(Rotate_XProperty, value); } //} //public static readonly DependencyProperty Rotate_XProperty = DependencyProperty.Register("Rotate_X", typeof(float), typeof(FirstPageBuoyControl), new PropertyMetadata(default(float), new PropertyChangedCallback(OnPropertyChanged))); ///// ///// 偏航角 ///// //public float Rotate_Y //{ // get { return (float)this.GetValue(Rotate_YProperty); } // set { this.SetValue(Rotate_YProperty, value); } //} ///// ///// 翻滚角 ///// //public static readonly DependencyProperty Rotate_YProperty = DependencyProperty.Register("Rotate_Y", typeof(float), typeof(FirstPageBuoyControl), new PropertyMetadata(default(float), new PropertyChangedCallback(OnPropertyChanged))); //public float Rotate_Z //{ // get { return (float)this.GetValue(Rotate_ZProperty); } // set { this.SetValue(Rotate_ZProperty, value); } //} //public static readonly DependencyProperty Rotate_ZProperty = DependencyProperty.Register("Rotate_Z", typeof(float), typeof(FirstPageBuoyControl), new PropertyMetadata(default(float), new PropertyChangedCallback(OnPropertyChanged))); ///// ///// 经度 ///// //public float JD //{ // get { return (float)this.GetValue(JDProperty); } // set { this.SetValue(JDProperty, value); } //} //public static readonly DependencyProperty JDProperty = DependencyProperty.Register("JD", typeof(float), typeof(FirstPageBuoyControl), new PropertyMetadata(default(float), new PropertyChangedCallback(OnPropertyChanged))); ///// ///// 纬度 ///// //public float WD //{ // get { return (float)this.GetValue(WDProperty); } // set { this.SetValue(WDProperty, value); } //} //public static readonly DependencyProperty WDProperty = DependencyProperty.Register("WD", typeof(float), typeof(FirstPageBuoyControl), new PropertyMetadata(default(float), new PropertyChangedCallback(OnPropertyChanged))); ///// ///// 深度 ///// //public float SD //{ // get { return (float)this.GetValue(SDProperty); } // set { this.SetValue(SDProperty, value); } //} //public static readonly DependencyProperty SDProperty = DependencyProperty.Register("SD", typeof(float), typeof(FirstPageBuoyControl), new PropertyMetadata(default(float), new PropertyChangedCallback(OnPropertyChanged))); #endregion public static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { (d as FirstPageBuoyControl).Refresh(); } public FirstPageBuoyControl() { InitializeComponent(); } private void Refresh() { //将其余值进行赋值 if (Beacon != null) { this.BuoyModel.Rotate_X = Beacon.Position_Pitch_Angle - 90; this.BuoyModel.Rotate_Y = Beacon.Position_Heading_Angle + 90; this.BuoyModel.Rotate_Z = Beacon.BasicSite_Heading; this.TextJD.Text = Beacon.BasicSite_JD + "°"; this.TextWD.Text = Beacon.BasicSite_WD + "°"; this.TextSD.Text = Beacon.BasicSite_Depth + "米"; } //是否可以使用鼠标跟随 this.BuoyModel.TBDEnable = TBDEnable; //设置字体颜色和字体大小 this.TextJD.Foreground = this.Text_Color; } } }