using System.ComponentModel; using System.ComponentModel.DataAnnotations; namespace Yw.WinFrmUI { public partial class MapViewMarkerContainer : UserControl, IMapViewMarkerContainer { public MapViewMarkerContainer() { InitializeComponent(); } public event Action LoadCompletedEvent; public event Action LoadFailedEvent; public event Action HandingErrorEvent; /// /// 交互对象 /// public MapViewMarkerCallBackObj CallBackObj { get { if (_callBackObj == null) { _callBackObj = new MapViewMarkerCallBackObj(); } return _callBackObj; } } private MapViewMarkerCallBackObj _callBackObj; /// /// 是否初始化 /// public bool IsInitialized { get { return _isInitialized; } } private bool _isInitialized; /// /// 初始话容器 /// public async Task InitialContainer() { var callBackObj = this.CallBackObj; callBackObj.LoadCompletedEvent += CallBackObj_LoadCompletedEvent; callBackObj.LoadFailedEvent += CallBackObj_LoadFailedEvent; callBackObj.HandingErrorEvent += CallBackObj_HandingErrorEvent; await this.webViewControl1.InitialWebBrower(MapUrlHelper.ViewMarkerUrl, callBackObj, true); } //加载完成 private void CallBackObj_LoadCompletedEvent() { _isInitialized = true; this.LoadCompletedEvent?.Invoke(); } //加载失败 private void CallBackObj_LoadFailedEvent() { this.LoadFailedEvent?.Invoke(); } //处理错误 private void CallBackObj_HandingErrorEvent(HandingError obj) { this.HandingErrorEvent?.Invoke(obj); } /// /// 加载点 /// public async Task LoadMarker(Yw.Model.Map.Marker marker) { if (!this.IsInitialized) { return false; } return await this.webViewControl1.EvaluateScriptAsync("loadMarker", marker); } #region 边框 /// /// 显示边框 /// [Display(Name = "显示边框")] [DisplayName("显示边框")] [Browsable(true)] public bool ShowBorder { get { return this.webViewControl1.ShowBorder; } set { this.webViewControl1.ShowBorder = value; } } /// /// 边框颜色 /// [Display(Name = "边框颜色")] [DisplayName("边框颜色")] [Browsable(true)] public Color BorderColor { get { return this.webViewControl1.BorderColor; } set { this.webViewControl1.BorderColor = value; } } /// /// 边框宽度 /// [Display(Name = "边框宽度")] [DisplayName("边框宽度")] [Browsable(true)] public int BorderWidth { get { return this.webViewControl1.BorderWidth; } set { this.webViewControl1.BorderWidth = value; } } #endregion } }