NavisworksTransport/.kiro/specs/ui-scaling-enhancement/design.md
2025-07-30 13:58:21 +08:00

222 lines
6.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 设计文档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文件进行修改不涉及其他文件。