# 设计文档:UI缩放增强 ## 概述 本设计文档描述了如何改善Navisworks插件在4K高分辨率显示器上的用户界面显示效果。根据用户反馈,插件在2K显示器上显示正常,但在4K显示器上(使用150%缩放,实际显示为2560*1440)显示过小,导致按钮中的文字显示不全、组件高度不足等问题。模型分层拆分工具的弹出对话框在4K显示器上已经能够正常显示,因此本设计将参考该实现来调整MainPlugin中的按钮尺寸、分组区域高度和主窗口大小。 ## 设计方案 本设计采用最简单直接的方案,只调整MainPlugin中的按钮尺寸、分组区域高度和主窗口大小,不修改其他任何代码。主要调整内容包括: 1. **增加主窗口尺寸**:参考ModelSplitterDialog的尺寸,适当增加MainPlugin主窗口的宽度和高度。 2. **调整按钮尺寸**:参考ModelSplitterDialog中的按钮尺寸,增加MainPlugin中所有按钮的宽度和高度。 3. **调整分组区域高度**:增加GroupBox的高度,确保能容纳调整后的按钮并有合理间距。 4. **增加路径列表和表格高度**:特别增加路径编辑标签页中的路径列表和当前路径编辑表格的高度,使其能容纳的行数从3行增加到4行。 ### 参考ModelSplitterDialog的实现 通过分析ModelSplitterDialog.cs,我们发现以下关键设置: ```csharp // 窗口大小设置 this.Size = new Size(800, 720); // 按钮大小设置 Size = new Size(100, 30) // 主要按钮 Size = new Size(80, 30) // 次要按钮 // GroupBox高度设置 Size = new Size(350, 160) // 较大的分组区域 Size = new Size(350, 80) // 较小的分组区域 ``` ## 具体实现方案 ### 1. 主窗口尺寸调整 将MainPlugin中的主窗口从当前尺寸调整为更大的尺寸: ```csharp // 原始尺寸 _controlPanelForm = new Form { Text = "物流路径规划控制面板", Size = new Size(420, 700), // 其他属性... }; // 调整后的尺寸 _controlPanelForm = new Form { Text = "物流路径规划控制面板", Size = new Size(500, 820), // 增加宽度和高度,以容纳更大的路径列表和表格 // 其他属性... }; ``` ### 2. 按钮尺寸调整 增加MainPlugin中所有按钮的宽度和高度,参考ModelSplitterDialog中的按钮尺寸: ```csharp // 原始按钮尺寸 Button button = new Button { Text = "按钮文本", Size = new Size(60, 25), // 其他属性... }; // 调整后的按钮尺寸 - 主要按钮 Button mainButton = new Button { Text = "主要按钮", Size = new Size(100, 30), // 参考ModelSplitterDialog的主要按钮尺寸 // 其他属性... }; // 调整后的按钮尺寸 - 次要按钮 Button secondaryButton = new Button { Text = "次要按钮", Size = new Size(80, 30), // 参考ModelSplitterDialog的次要按钮尺寸 // 其他属性... }; ``` ### 3. 分组区域高度调整 增加GroupBox的高度,确保能容纳调整后的按钮并有合理间距: ```csharp // 原始GroupBox尺寸 GroupBox groupBox = new GroupBox { Text = "分组标题", Size = new Size(350, 70), // 或其他高度 // 其他属性... }; // 调整后的GroupBox尺寸 GroupBox groupBox = new GroupBox { Text = "分组标题", Size = new Size(350, 90), // 增加高度,确保有足够空间容纳更大的按钮 // 其他属性... }; ``` ### 4. 路径列表和表格高度调整 特别增加路径编辑标签页中的路径列表和当前路径编辑表格的高度: ```csharp // 原始路径列表尺寸 _pathListView = new ListView { // 其他属性... Size = new Size(350, 100), // 假设原始高度为100 }; // 调整后的路径列表尺寸 _pathListView = new ListView { // 其他属性... Size = new Size(350, 140), // 增加高度,使其能容纳4行 }; // 原始路径点列表尺寸 _currentPathPointsListView = new ListView { // 其他属性... Size = new Size(350, 100), // 假设原始高度为100 }; // 调整后的路径点列表尺寸 _currentPathPointsListView = new ListView { // 其他属性... Size = new Size(350, 140), // 增加高度,使其能容纳4行 }; ``` ## 需要修改的位置 ### 1. MainPlugin.cs中的ShowCategorySelectionDialog方法 修改主窗口尺寸: ```csharp _controlPanelForm = new Form { Text = "物流路径规划控制面板", Size = new Size(500, 820), // 从(420, 700)调整为(500, 820) // 其他属性保持不变... }; ``` ### 2. 各个标签页中的分组区域和按钮 在以下方法中找到所有GroupBox和Button的Size属性,并进行调整: - CreateModelSettingsTab - CreatePathEditingTab - CreateAnimationControlTab - CreateSystemManagementTab 例如: ```csharp // 原始代码 GroupBox groupBox = new GroupBox { Text = "分组标题", Size = new Size(350, 70), // 其他属性... }; Button button = new Button { Text = "按钮文本", Size = new Size(60, 25), // 其他属性... }; // 修改为 GroupBox groupBox = new GroupBox { Text = "分组标题", Size = new Size(350, 90), // 增加高度 // 其他属性保持不变... }; Button button = new Button { Text = "按钮文本", Size = new Size(100, 30), // 或 Size = new Size(80, 30),根据按钮重要性 // 其他属性保持不变... }; ``` ### 3. 路径编辑标签页中的列表 特别关注CreatePathEditingTab方法中的路径列表和当前路径编辑表格: ```csharp // 找到路径列表和当前路径编辑表格的定义 _pathListView.Size = new Size(350, 140); // 增加高度 _currentPathPointsListView.Size = new Size(350, 140); // 增加高度 // 同时调整包含这些列表的GroupBox高度 pathListGroupBox.Size = new Size(350, 200); // 从160增加到200 currentPathGroupBox.Size = new Size(350, 290); // 从250增加到290 ``` ## 实现注意事项 1. **只修改尺寸数据**:只调整窗口、分组区域、列表和按钮的Size属性,不修改其他任何代码。 2. **保持一致性**:确保所有按钮的调整保持一致,主要按钮使用(100, 30),次要按钮使用(80, 30)。 3. **合理间距**:确保增加GroupBox高度后,内部控件有足够的间距,不会显得拥挤。 4. **路径列表特别关注**:确保路径列表和当前路径编辑表格能容纳4行数据,提高用户体验。 5. **最小化修改**:只针对MainPlugin.cs文件进行修改,不涉及其他文件。