222 lines
6.4 KiB
Markdown
222 lines
6.4 KiB
Markdown
# 设计文档: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文件进行修改,不涉及其他文件。
|