Skip to content

Commit a9027bd

Browse files
authored
Merge pull request #235 from Weichenleeeee123/master
Update Chinese wiki docs
2 parents eebcf47 + eb72355 commit a9027bd

File tree

3 files changed

+155
-0
lines changed

3 files changed

+155
-0
lines changed

docs/localization/zh-CN/_Sidebar.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,19 @@
3939
- [预备连接](连接概述#预备连接)
4040

4141
[连接器概述](连接器概述)
42+
- [NodeInput 和 NodeOutput](连接器概述#NodeInput和NodeOutput)
43+
44+
[剪切线概述](剪切线概述)
45+
46+
- [启用预览](剪切线概述#启用预览)
47+
- [自定义连接](剪切线概述#自定义连接)
48+
- [自定义外观](剪切线概述#自定义外观)
49+
50+
[小地图概述](小地图概述)
51+
52+
- [移动视口](小地图概述#移动视口)
53+
- [缩放](小地图概述#缩放)
54+
- [自定义外观](小地图概述#自定义外观)
4255

4356
[API 参考](API-Reference)
4457

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
## 目录
2+
3+
- [启用预览](#启用预览)
4+
- [自定义连接](#自定义连接)
5+
- [自定义外观](#自定义外观)
6+
7+
`CuttingLine` 控件是一个自定义控件,用于移除与其相交的连接线。
8+
9+
默认的剪切启动手势是 `SHIFT+ALT+左键单击` ,可以通过设置 `EditorGestures.Editor.Cutting` 手势进行配置。剪切操作可以通过按下 `Escape` 键或右键取消,右键的配置同样可以通过设置 `EditorGestures.Editor.CancelAction` 手势进行配置。
10+
11+
`NodifyEditor` 中可用的相关命令有::
12+
13+
- CuttingStartedCommand
14+
- CuttingCompletedCommand
15+
- RemoveConnectionCommand - 当剪切操作完成时,对每个相交的连接线调用
16+
17+
### 启用预览
18+
19+
若希望连接线在与剪切线相交时改变样式,需要将 `NodifyEditor.EnableCuttingLinePreview` 设置为 `true`
20+
21+
> [!警告]
22+
> 根据连接线数量及其几何复杂度,此操作可能对性能造成较大影响。
23+
24+
![cutting](https://github.com/user-attachments/assets/22f705c8-3bf1-466b-8bbd-da007f30deb2)
25+
26+
## 自定义连接
27+
28+
若希望剪切自定义连接线,需要将连接类型添加到 `NodifyEditor.CuttingConnectionTypes`:
29+
30+
```csharp
31+
// 示例:将 Line 形状添加到可剪切的连接类型中
32+
NodifyEditor.CuttingConnectionTypes.Add(typeof(System.Windows.Shapes.Line));
33+
```
34+
35+
可以如下自定义与剪切线相交的自定义连接线样式:
36+
37+
```xml
38+
<Style TargetType="Line">
39+
<Style.Triggers>
40+
<Trigger Property="nodify:CuttingLine.IsOverElement" Value="True">
41+
<Setter Property="Opacity"
42+
Value="0.4" />
43+
</Trigger>
44+
</Style.Triggers>
45+
</Style>
46+
```
47+
48+
## 自定义外观
49+
50+
可使用 `CuttingLineStyle` 自定义剪切线的样式:
51+
52+
```xml
53+
<Style x:Key="CuttingLineStyle"
54+
TargetType="{x:Type nodify:CuttingLine}"
55+
BasedOn="{StaticResource {x:Type nodify:CuttingLine}}">
56+
<Setter Property="StrokeDashArray"
57+
Value="1 1" />
58+
<Setter Property="StrokeThickness"
59+
Value="2" />
60+
</Style>
61+
62+
<nodify:NodifyEditor CuttingLineStyle="{StaticResource CuttingLineStyle}" ... />
63+
```
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
## 目录
2+
3+
- [目录](#目录)
4+
- [移动视口](#移动视口)
5+
- [缩放](#缩放)
6+
- [自定义外观](#自定义外观)
7+
8+
`Minimap` 控件是一个自定义控件,旨在为 `NodifyEditor` 提供同步的缩略视图。
9+
它继承自 `ItemsControl`,通过 `ItemsSource` 属性显示项目。每个项目都包装在 `MinimapItem` 容器中,需在 `ItemContainerStyle` 中设置:
10+
11+
12+
> [!TIP]
13+
> 若希望在小地图中实时移动节点,需要将 `NodifyEditor.EnableDraggingContainersOptimizations` 设置为 `false`
14+
15+
此外,该控件还会显示一个表示编辑器可见区域的视口矩形,需要设置 `ViewportLocation``ViewportSize` 属性。
16+
17+
```xml
18+
<nodify:Minimap
19+
ItemsSource="{Binding ItemsSource, ElementName=Editor}"
20+
ViewportLocation="{Binding ViewportLocation, ElementName=Editor}"
21+
ViewportSize="{Binding ViewportSize, ElementName=Editor}"
22+
Zoom="OnMinimapZoom">
23+
<nodify:Minimap.ItemContainerStyle>
24+
<Style TargetType="nodify:MinimapItem">
25+
<Setter Property="Location" Value="{Binding MyItemLocation}" />
26+
</Style>
27+
</nodify:Minimap.ItemContainerStyle>
28+
</nodify:Minimap>
29+
```
30+
31+
```csharp
32+
private void OnMinimapZoom(object sender, ZoomEventArgs e)
33+
{
34+
Editor.ZoomAtPosition(e.Zoom, e.Location);
35+
}
36+
```
37+
38+
> [!IMPORTANT]
39+
> `Width``Height` 应由父容器限制,或在 `Minimap` 上设置为常量值,以防止其根据内容大小改变。
40+
41+
## 移动视口
42+
43+
按住鼠标点击并拖动即可移动视口(平移)。若将 `IsReadOnly` 属性设置为 `true`,则无法移动。
44+
45+
在平移过程中,`ViewportLocation` 会更新,因此需要进行双向绑定(默认即为双向绑定)。
46+
47+
平移手势可通过设置 `EditorGestures.Mappings.Minimap.DragViewport` 为所需手势进行配置。
48+
49+
## 缩放
50+
51+
滚动鼠标滚轮即可进行缩放。若将 `IsReadOnly` 属性设置为 `true` 或未处理 `Zoom` 事件,则无法缩放。
52+
53+
54+
缩放时的修饰键可通过设置 `EditorGestures.Mappings.Minimap.ZoomModifierKey` 为所需值进行配置。
55+
56+
## 自定义外观
57+
58+
可使用 `ViewportStyle` 自定义视口矩形的样式,例如:
59+
60+
```xml
61+
<Style x:Key="MyViewportStyle" TargetType="Rectangle">
62+
<Setter Property="Fill" Value="Transparent"/>
63+
<Setter Property="Stroke" Value="White"/>
64+
<Setter Property="StrokeThickness" Value="3"/>
65+
</Style>
66+
67+
<nodify:Minimap ViewportStyle="{StaticResource MyViewportStyle}" ... />
68+
```
69+
70+
`MaxViewportOffset` 属性用于限制在 [移动视口](#移动视口) 时,视口可偏离项目的最大距离。
71+
72+
`ResizeToViewport` 属性用于改变小地图的缩放行为。
73+
若设置为 `true`,则小地图会始终与项目一起缩放,以显示视口。
74+
75+
![scale-with-viewport](https://github.com/user-attachments/assets/7a8887bf-f3f4-44d7-8311-6d9ba7869d78)
76+
77+
如果设置为 `false`,则小地图仅显示项目,视口可以超出项目范围。
78+
79+
![viewport-out-of-bounds](https://github.com/user-attachments/assets/5d3b388e-8e40-4bfe-af3b-4c12fb47548d)

0 commit comments

Comments
 (0)