| | |
| | | using System.Windows.Forms.Integration; |
| | | using Yw.Settings; |
| | | using Yw.WpfUI.Hydro; |
| | | |
| | | namespace Yw.WinFrmUI.Hydro |
| | | { |
| | |
| | | InitializeComponent(); |
| | | } |
| | | |
| | | private Yw.WpfUI.Hydro.ViewerL3d _wpfViewer = null;//wpf控件 |
| | | #region 事件集合 |
| | | |
| | | //初始化wpf控件 |
| | | private void InitialWpfControl() |
| | | { |
| | | this.Controls.Clear(); |
| | | var elementHost = new ElementHost(); |
| | | elementHost.Dock = DockStyle.Fill; |
| | | this.Controls.Add(elementHost); |
| | | _wpfViewer = new WpfUI.Hydro.ViewerL3d(); |
| | | elementHost.Child = _wpfViewer; |
| | | } |
| | | /// <summary> |
| | | /// 选择改变事件 |
| | | /// </summary> |
| | | public event Action<List<Yw.WpfUI.Hydro.VisualL3d>> SelectionChangedEvent; |
| | | |
| | | #endregion |
| | | |
| | | #region 私有字段 |
| | | |
| | | private Yw.WpfUI.Hydro.ViewerL3d _wpfViewer = null;//wpf控件 |
| | | |
| | | #endregion |
| | | |
| | | #region 初始化 |
| | | |
| | | /// <summary> |
| | | /// 初始化 |
| | |
| | | _wpfViewer.Initial(nw); |
| | | } |
| | | |
| | | //初始化wpf控件 |
| | | private void InitialWpfControl() |
| | | { |
| | | _wpfViewer = new WpfUI.Hydro.ViewerL3d(); |
| | | _wpfViewer.SelectionChangedEvent += OnSelectionChanged; |
| | | var elementHost = new ElementHost(); |
| | | elementHost.Dock = DockStyle.Fill; |
| | | elementHost.Child = _wpfViewer; |
| | | this.Controls.Clear(); |
| | | this.Controls.Add(elementHost); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 工作面板 |
| | | |
| | | /// <summary> |
| | | /// 显示工作面板 |
| | | /// </summary> |
| | | public void ShowWorkPanel() |
| | | { |
| | | _wpfViewer?.ShowWorkPanel(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 隐藏工作面板 |
| | | /// </summary> |
| | | public void HideWorkPanel() |
| | | { |
| | | _wpfViewer?.HideWorkPanel(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 工作面板可见性 |
| | | /// </summary> |
| | | public bool WorkPanelVisible |
| | | { |
| | | get |
| | | { |
| | | return _wpfViewer == null ? false : _wpfViewer.WorkPanelVisible; |
| | | } |
| | | set |
| | | { |
| | | if (_wpfViewer != null) |
| | | { |
| | | _wpfViewer.WorkPanelVisible = value; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置工作面板 |
| | | /// </summary> |
| | | public void SetWorkPanel(WorkPanelL3d workPanel) |
| | | { |
| | | _wpfViewer?.SetWorkPanel(workPanel); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 图片背景 |
| | | |
| | | /// <summary> |
| | | /// 显示图片背景 |
| | | /// </summary> |
| | | public void ShowBackground() |
| | | { |
| | | _wpfViewer?.ShowBackground(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 隐藏图片背景 |
| | | /// </summary> |
| | | public void HideBackground() |
| | | { |
| | | _wpfViewer?.HideBackground(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 图片背景可见性 |
| | | /// </summary> |
| | | public bool BackgroundVisible |
| | | { |
| | | get |
| | | { |
| | | return _wpfViewer == null ? false : _wpfViewer.BackgroundVisible; |
| | | } |
| | | set |
| | | { |
| | | if (_wpfViewer != null) |
| | | { |
| | | _wpfViewer.BackgroundVisible = value; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置图片背景 |
| | | /// </summary> |
| | | public void SetBackground(BackgroundL3d bc) |
| | | { |
| | | _wpfViewer?.SetBackground(bc); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置图片背景 |
| | | /// </summary> |
| | | public void SetBackground(string url) |
| | | { |
| | | _wpfViewer?.SetBackground(url); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 相机视角 |
| | | |
| | | /// <summary> |
| | | /// 显示上视图 |
| | | /// </summary> |
| | | public void ShowTopView() |
| | | { |
| | | _wpfViewer?.ShowTopView(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示下视图 |
| | | /// </summary> |
| | | public void ShowBottomView() |
| | | { |
| | | _wpfViewer?.ShowBottomView(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示左视图 |
| | | /// </summary> |
| | | public void ShowLeftView() |
| | | { |
| | | _wpfViewer?.ShowLeftView(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示右视图 |
| | | /// </summary> |
| | | public void ShowRightView() |
| | | { |
| | | _wpfViewer?.ShowRightView(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示前视图 |
| | | /// </summary> |
| | | public void ShowFrontView() |
| | | { |
| | | _wpfViewer?.ShowFrontView(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示后视图 |
| | | /// </summary> |
| | | public void ShowBackView() |
| | | { |
| | | _wpfViewer?.ShowBackView(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示西南视角 |
| | | /// 从物体的左前下方观察 |
| | | /// </summary> |
| | | public void ShowSouthWestView() |
| | | { |
| | | _wpfViewer?.ShowSouthWestView(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示东南视角 |
| | | /// 从物体的右前下方观察 |
| | | /// </summary> |
| | | public void ShowSouthEastView() |
| | | { |
| | | _wpfViewer?.ShowSouthEastView(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示东北视角 |
| | | /// 从物体的右后上方观察 |
| | | /// </summary> |
| | | public void ShowNorthEastView() |
| | | { |
| | | _wpfViewer?.ShowNorthEastView(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 显示西北视角 |
| | | /// 从物体的左后上方观察 |
| | | /// </summary> |
| | | public void ShowNorthWestView() |
| | | { |
| | | _wpfViewer?.ShowNorthWestView(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 关联缩放 |
| | | |
| | | /// <summary> |
| | | /// 缩放至可见构件 |
| | | /// </summary> |
| | | public void ZoomToVisual(string Id) |
| | | { |
| | | _wpfViewer?.ZoomToVisual(Id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 缩放至可见构件 |
| | | /// </summary> |
| | | public void ZoomToVisual(List<string> Ids) |
| | | { |
| | | _wpfViewer?.ZoomToVisual(Ids); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 选择构件 |
| | | |
| | | /// <summary> |
| | | /// 选择构件 |
| | | /// </summary> |
| | | public void SelectVisual(string Id) |
| | | { |
| | | _wpfViewer?.SelectVisual(Id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 选择构件 |
| | | /// </summary> |
| | | public void SelectVisual(List<string> Ids) |
| | | { |
| | | _wpfViewer?.SelectVisual(Ids); |
| | | } |
| | | |
| | | //处理选择改变 |
| | | protected virtual void OnSelectionChanged(List<VisualL3d> visuals) |
| | | { |
| | | this.SelectionChangedEvent?.Invoke(visuals); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 缩放并选择构件 |
| | | |
| | | /// <summary> |
| | | /// 缩放并选择构件 |
| | | /// </summary> |
| | | public void ZoomAndSelectVisual(string Id) |
| | | { |
| | | _wpfViewer?.ZoomAndSelectVisual(Id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 缩放并选择构件 |
| | | /// </summary> |
| | | public void ZoomAndSelectVisual(List<string> Ids) |
| | | { |
| | | _wpfViewer?.ZoomAndSelectVisual(Ids); |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | | #region 颜色覆盖 |
| | | |
| | | /// <summary> |
| | | /// 设置颜色 |
| | | /// </summary> |
| | | public void SetColor(string Id, string htmlColor) |
| | | { |
| | | _wpfViewer?.SetColor(Id, htmlColor); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置颜色 |
| | | /// </summary> |
| | | public void SetColor(List<string> Ids, string htmlColor) |
| | | { |
| | | _wpfViewer?.SetColor(Ids, htmlColor); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置颜色 |
| | | /// </summary> |
| | | public void SetColor(List<ColorL3d> list) |
| | | { |
| | | _wpfViewer?.SetColor(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除颜色 |
| | | /// </summary> |
| | | public void ClearColor(string Id) |
| | | { |
| | | _wpfViewer?.ClearColor(Id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除颜色 |
| | | /// </summary> |
| | | public void ClearColor(List<string> Ids) |
| | | { |
| | | _wpfViewer?.ClearColor(Ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除颜色 |
| | | /// </summary> |
| | | public void ClearColor() |
| | | { |
| | | _wpfViewer?.ClearColor(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 透明度 |
| | | |
| | | /// <summary> |
| | | /// 设置透明度 |
| | | /// </summary> |
| | | public void SetOpacity(string Id, double opacity) |
| | | { |
| | | _wpfViewer?.SetOpacity(Id, opacity); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置透明度 |
| | | /// </summary> |
| | | public void SetOpacity(List<string> Ids, double opacity) |
| | | { |
| | | _wpfViewer?.SetOpacity(Ids, opacity); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置透明度 |
| | | /// </summary> |
| | | public void SetOpacity(List<OpacityL3d> list) |
| | | { |
| | | _wpfViewer?.SetOpacity(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除透明度 |
| | | /// </summary> |
| | | public void ClearOpacity(string Id) |
| | | { |
| | | _wpfViewer?.ClearOpacity(Id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除透明度 |
| | | /// </summary> |
| | | public void ClearOpacity(List<string> Ids) |
| | | { |
| | | _wpfViewer?.ClearOpacity(Ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除透明度 |
| | | /// </summary> |
| | | public void ClearOpacity() |
| | | { |
| | | _wpfViewer?.ClearOpacity(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 可见性 |
| | | |
| | | /// <summary> |
| | | /// 设置可见性 |
| | | /// </summary> |
| | | public void SetVisible(string Id, bool visible) |
| | | { |
| | | _wpfViewer?.SetVisible(Id, visible); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置可见性 |
| | | /// </summary> |
| | | public void SetVisible(List<string> Ids, bool visible) |
| | | { |
| | | _wpfViewer?.SetVisible(Ids, visible); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置可见性 |
| | | /// </summary> |
| | | public void SetVisible(List<VisibleL3d> list) |
| | | { |
| | | _wpfViewer?.SetVisible(list); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除可见性 |
| | | /// </summary> |
| | | public void ClearVisible(string Id) |
| | | { |
| | | _wpfViewer?.ClearVisible(Id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除可见性 |
| | | /// </summary> |
| | | public void ClearVisible(List<string> Ids) |
| | | { |
| | | _wpfViewer?.ClearVisible(Ids); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清除可见性 |
| | | /// </summary> |
| | | public void ClearVisible() |
| | | { |
| | | _wpfViewer?.ClearVisible(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 公告文本 |
| | | |
| | | /// <summary> |
| | | /// 显示公告文本 |
| | | /// </summary> |
| | | public void ShowBillboardText() |
| | | { |
| | | _wpfViewer?.ShowBillboardText(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 隐藏公告文本 |
| | | /// </summary> |
| | | public void HideBillboardText() |
| | | { |
| | | _wpfViewer?.HideBillboardText(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 公告文本可见性 |
| | | /// </summary> |
| | | public bool BillboardTextVisible |
| | | { |
| | | get |
| | | { |
| | | return _wpfViewer == null ? false : _wpfViewer.BillboardTextVisible; |
| | | } |
| | | set |
| | | { |
| | | if (_wpfViewer != null) |
| | | { |
| | | _wpfViewer.BillboardTextVisible = value; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置公告文本 |
| | | /// </summary> |
| | | public void SetBillboardText(TextL3d item) |
| | | { |
| | | _wpfViewer.SetBillboardText(item); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置公告文本 |
| | | /// </summary> |
| | | public void SetBillboardText(List<TextL3d> items) |
| | | { |
| | | _wpfViewer.SetBillboardText(items); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清理公告文本 |
| | | /// </summary> |
| | | public void ClearBillboardText() |
| | | { |
| | | _wpfViewer.ClearBillboardText(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 水流方向 |
| | | |
| | | /// <summary> |
| | | /// 显示水流方向 |
| | | /// </summary> |
| | | public void ShowFlowDirection() |
| | | { |
| | | _wpfViewer?.ShowFlowDirection(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 隐藏水流方向 |
| | | /// </summary> |
| | | public void HideFlowDirection() |
| | | { |
| | | _wpfViewer?.HideFlowDirection(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 水流方向可见性 |
| | | /// </summary> |
| | | public bool FlowDirectionVisible |
| | | { |
| | | get |
| | | { |
| | | return _wpfViewer == null ? false : _wpfViewer.FlowDirectionVisible; |
| | | } |
| | | set |
| | | { |
| | | if (_wpfViewer != null) |
| | | { |
| | | _wpfViewer.FlowDirectionVisible = value; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置水流方向 |
| | | /// </summary> |
| | | public void SetFlowDirection(FlowDirectionL3d item) |
| | | { |
| | | _wpfViewer.SetFlowDirection(item); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置水流方向 |
| | | /// </summary> |
| | | public void SetFlowDirection(List<FlowDirectionL3d> items) |
| | | { |
| | | _wpfViewer.SetFlowDirection(items); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 清理水流方向 |
| | | /// </summary> |
| | | public void ClearFlowDirection() |
| | | { |
| | | _wpfViewer.ClearFlowDirection(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | //关闭 |
| | | protected virtual void Close() |
| | | { |
| | | if (_wpfViewer != null) |
| | | { |
| | | _wpfViewer.SelectionChangedEvent -= OnSelectionChanged; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |