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 Yw.WpfUI.Hydro { /// /// ViewerL3d.xaml 的交互逻辑 /// public partial class ViewerL3d : UserControl { public ViewerL3d() { InitializeComponent(); this.Unloaded += OnUnloaded; } #region 事件集合 /// /// 选择改变事件 /// public event Action> SelectionChangedEvent; #endregion #region 私有字段 private DrawViewManager _manager = null;//管理器 #endregion #region 初始化 /// /// 初始化 /// public void Initial(NetworkL3d nw) { _manager = new DrawViewManager(this.viewport); _manager.Initial(nw); _manager.SelectionChangedEvent += OnSelectionChanged; } #endregion #region 图片背景 /// /// 显示图片背景 /// public void ShowBackground() { _manager?.ShowBackgroud(); } /// /// 隐藏图片背景 /// public void HideBackground() { _manager?.HideBackgroud(); } /// /// 图片背景可见性 /// public bool BackgroundVisible { get { return _manager?.BackgroudVisible ?? false; } set { if (_manager != null) { _manager.BackgroudVisible = value; } } } /// /// 设置图片背景 /// public void SetBackground(BackgroundL3d bc) { _manager?.SetBackground(bc); } /// /// 设置图片背景 /// public void SetBackground(string url) { _manager?.SetBackground(url); } #endregion #region 相机视角 #region 当前视角 /// /// 获取当前相机Setting /// public CameraSettingL3d GetCurrentCameraSetting() { return _manager?.GetCurrentCameraSetting(); } #endregion #region 默认视角 /// /// 显示默认视图 /// public bool ShowDefaultView() { return _manager?.ShowDefaultView() ?? false; } /// /// 设置默认视图 /// public bool SetDefaultView(CameraInfoL3d info) { return _manager?.SetDefaultView(info) ?? false; } /// /// 设置默认视图名称 /// public bool SetDefaultViewName(string name) { return _manager?.SetDefaultViewName(name) ?? false; } /// /// 设置默认视图Setting /// public bool SetDefaultViewSetting(CameraSettingL3d setting) { return _manager?.SetDefaultViewSetting(setting) ?? false; } #endregion #region 六视图 /// /// 显示上视图 /// public bool ShowTopView() { return _manager?.ShowTopView() ?? false; } /// /// 显示下视图 /// public bool ShowBottomView() { return _manager?.ShowBottomView() ?? false; } /// /// 显示左视图 /// public bool ShowLeftView() { return _manager?.ShowLeftView() ?? false; } /// /// 显示右视图 /// public bool ShowRightView() { return _manager?.ShowRightView() ?? false; } /// /// 显示前视图 /// public bool ShowFrontView() { return _manager?.ShowFrontView() ?? false; } /// /// 显示后视图 /// public bool ShowBackView() { return _manager?.ShowBackView() ?? false; } #endregion #region 等轴视图 /// /// 西北视角 /// public bool ShowNorthWestView() { return _manager?.ShowNorthWestView() ?? false; } /// /// 东北视角 /// public bool ShowNorthEastView() { return _manager?.ShowNorthEastView() ?? false; } /// /// 西南视角 /// public bool ShowSouthWestView() { return _manager?.ShowSouthWestView() ?? false; } /// /// 东南视角 /// public bool ShowSouthEastView() { return _manager?.ShowSouthEastView() ?? false; } #endregion #endregion #region 关联缩放 /// /// 缩放至可见构件 /// public void ZoomToVisual(string Id) { _manager?.ZoomToVisual(Id); } /// /// 缩放至可见构件 /// public void ZoomToVisual(List Ids) { _manager?.ZoomToVisual(Ids); } #endregion #region 选择构件 /// /// 选择构件 /// public void SelectVisual(string Id) { _manager?.SelectVisual(Id); } /// /// 选择构件 /// public void SelectVisual(List Ids) { _manager?.SelectVisual(Ids); } //处理选择改变 private void OnSelectionChanged(List visuals) { this.SelectionChangedEvent?.Invoke(visuals); } #endregion #region 缩放并选择构件 /// /// 缩放并选择构件 /// public void ZoomAndSelectVisual(string Id) { _manager?.ZoomAndSelectVisual(Id); } /// /// 缩放并选择构件 /// public void ZoomAndSelectVisual(List Ids) { _manager?.ZoomAndSelectVisual(Ids); } #endregion #region 颜色覆盖 /// /// 设置颜色 /// public void SetColor(string Id, string htmlColor) { _manager?.SetColor(Id, htmlColor); } /// /// 设置颜色 /// public void SetColor(List Ids, string htmlColor) { _manager?.SetColor(Ids, htmlColor); } /// /// 设置颜色 /// public void SetColor(List list) { _manager?.SetColor(list); } /// /// 设置颜色 /// public void ClearColor(string Id) { _manager?.ClearColor(Id); } /// /// 设置颜色 /// public void ClearColor(List Ids) { _manager?.ClearColor(Ids); } /// /// 清除颜色 /// public void ClearColor() { _manager?.ClearColor(); } #endregion #region 透明度 /// /// 设置透明度 /// public void SetOpacity(string Id, double opacity) { _manager?.SetOpacity(Id, opacity); } /// /// 设置透明度 /// public void SetOpacity(List Ids, double opacity) { _manager?.SetOpacity(Ids, opacity); } /// /// 设置透明度 /// public void SetOpacity(List list) { _manager?.SetOpacity(list); } /// /// 清除透明度 /// public void ClearOpacity(string Id) { _manager?.ClearOpacity(Id); } /// /// 清除透明度 /// public void ClearOpacity(List Ids) { _manager?.ClearOpacity(Ids); } /// /// 清除透明度 /// public void ClearOpacity() { _manager?.ClearOpacity(); } #endregion #region 可见性 /// /// 设置可见性 /// public void SetVisible(string Id, bool visible) { _manager?.SetVisible(Id, visible); } /// /// 设置可见性 /// public void SetVisible(List Ids, bool visible) { _manager?.SetVisible(Ids, visible); } /// /// 设置可见性 /// public void SetVisible(List list) { _manager?.SetVisible(list); } /// /// 清除可见性 /// public void ClearVisible(string Id) { _manager?.ClearVisible(Id); } /// /// 清除可见性 /// public void ClearVisible(List Ids) { _manager?.ClearVisible(Ids); } /// /// 清除可见性 /// public void ClearVisible() { _manager?.ClearVisible(); } #endregion #region 公告文本 /// /// 显示公告文本 /// public void ShowBillboardText() { _manager?.ShowBillboardText(); } /// /// 隐藏公告文本 /// public void HideBillboardText() { _manager?.HideBillboardText(); } /// /// 公告文本可见性 /// public bool BillboardTextVisible { get { return _manager?.BillboardTextVisible ?? false; } set { if (_manager != null) { _manager.BillboardTextVisible = value; } } } /// /// 设置公告文本 /// public void SetBillboardText(TextL3d item) { _manager.SetBillboardText(item); } /// /// 设置公告文本 /// public void SetBillboardText(List items) { _manager.SetBillboardText(items); } /// /// 清理公告文本 /// public void ClearBillboardText() { _manager.ClearBillboardText(); } #endregion #region 水流方向 /// /// 显示水流方向 /// public void ShowFlowDirection() { _manager?.ShowFlowDirection(); } /// /// 隐藏水流方向 /// public void HideFlowDirection() { _manager?.HideFlowDirection(); } /// /// 水流方向可见性 /// public bool FlowDirectionVisible { get { return _manager?.FlowDirectionVisible ?? false; } set { if (_manager != null) { _manager.FlowDirectionVisible = value; } } } /// /// 设置水流方向 /// public void SetFlowDirection(FlowDirectionL3d item) { _manager.SetFlowDirection(item); } /// /// 设置水流方向 /// public void SetFlowDirection(List items) { _manager.SetFlowDirection(items); } /// /// 清理水流方向 /// public void ClearFlowDirection() { _manager.ClearFlowDirection(); } #endregion /// /// 卸载 /// private void OnUnloaded(object sender, RoutedEventArgs e) { if (_manager != null) { _manager.SelectionChangedEvent -= OnSelectionChanged; _manager.Close(); _manager = null; } } } }