102 lines
4.7 KiB
Markdown
102 lines
4.7 KiB
Markdown
## 目录
|
||
* [移动视口](#平移)
|
||
* [缩放](#缩放)
|
||
* [选择项目](#选择)
|
||
* [选择功能相关API](#选择功能相关API)
|
||
* [对齐到轴网](#对齐)
|
||
* [命令](#命令)
|
||
* [编辑器API](#编辑器API)
|
||
|
||
## 平移
|
||
|
||
平移是通过按住鼠标右键并移动鼠标来完成的,可以通过将```DisablePanning```依赖属性设置为```true```来禁用平移功能。
|
||
> 注意:可以通过设置```ViewportLocation```依赖属性以编程方式更改它。
|
||
|
||
在平移过程中,```IsPanning```依赖属性将被设置为```true```,并且```ViewportSize```, ```ViewportLocation``` 和 ```ViewportTransform``` 依赖属性将会更新。
|
||
|
||
默认情况下,自动平移也是启用的,可以通过将```DisableAutoPanning```依赖属性设置为```true```来禁用。其行为是在选择或拖动选区或待连接物体靠近视口边缘时平移视口。
|
||
|
||
可以使用```AutoPanSpeed```依赖属性更改自动平移速度,使用```AutoPanEdgeDistance```依赖属性更改触发平移的边缘距离。
|
||
|
||
平移功能还可以与选择和缩放结合使用,而自动平移不仅可以与选择和缩放结合使用,还可以与拖动选区或预备连接一起使用。
|
||
|
||
默认值:
|
||
|
||
* ```DisablePanning```: false
|
||
* ```DisableAutoPanning```: false
|
||
* ```AutoPanSpeed```: 10 pixels per tick
|
||
* ```AutoPanEdgeDistance```: 15 pixels
|
||
* ```AutoPanningTickRate```: 1 millisecond
|
||
|
||
## 缩放
|
||
|
||
缩放是通过使用鼠标滚轮或按```CTRL +```来放大或按```CTRL -```来缩小完成的,并且可以通过将```DisableZooming```依赖属性设置为```true```来禁用缩放功能。
|
||
> 注意:可以通过将```ViewportZoom```依赖属性设置为```MinViewportZoom```和```MaxViewportZoom```之间的值来以编程方式更改它。
|
||
|
||
在缩放过程中,```ViewportLocation```, ```ViewportSize``` 和 ```ViewportTransform``` 依赖属性将会更新。
|
||
|
||
缩放功能还可以与平移、拖动选区或预备连接结合使用。
|
||
|
||
默认值:
|
||
* ```ViewportZoom```: 1
|
||
* ```MinViewportZoom```: 0.1
|
||
* ```MaxViewportZoom```: 2
|
||
|
||
## 选择
|
||
|
||
选择项目是通过按住鼠标左键并移动鼠标来完成的。当选择操作正在进行时,```IsSelecting```依赖属性将被设置为```true```,并且```SelectedArea```依赖属性将随着每次移动而更新。
|
||
> 注意:也可以通过将集合绑定到```SelectedItems```依赖属性来以编程方式设置选定的项目。
|
||
|
||
如果启用了实时选择(```EnableRealtimeSelection```: true),则在调整选择矩形大小时,项目将被选中和取消选中。否则,在选择操作完成后,才会选中```SelectedArea```中包含的项目。
|
||
|
||
当选择一个```ItemContainer```时,其```IsSelected```依赖属性将被设置为```true```。
|
||
|
||
根据开始选择时按住的```ModifierKeys```不同,使用不同的行为:
|
||
- ```Replace``` - 无修饰键(默认行为,清除已选项目并开始新选择)
|
||
- ```Append``` - shift键(将选择添加到当前已选项目)
|
||
- ```Remove``` - alt键(从当前已选项目中移除选择)
|
||
- ```Invert``` - control键(移除选定项目并添加未选中项目)
|
||
|
||
选择项目也可以与平移和缩放结合使用。
|
||
|
||
默认值:
|
||
* ```EnableRealtimeSelection```: true
|
||
|
||
### 选择功能相关API:
|
||
|
||
以下方法可以在 NodifyEditor 实例上调用。
|
||
|
||
* SelectArea
|
||
* InvertSelection
|
||
* UnselectArea
|
||
|
||
## 对齐
|
||
|
||
当移动选中项目时,```GridCellSize```依赖属性会决定将选定项目对齐到何处。
|
||
对齐是相对于选定项目的位置而不是虚拟网格的位置。
|
||
|
||
如果选定项目在初始创建时未对齐到网格,或者在运行时更改了```GridCellSize```,那么当```EnableSnappingCorrection```依赖属性为```true```时,则在移动选中项目后将会校正最终位置。
|
||
|
||
默认值:
|
||
* ```GridCellSize```: 1
|
||
* ```EnableSnappingCorrection```: true
|
||
|
||
## 命令
|
||
|
||
在```EditorCommands```类中可以看到以下```RoutedUICommand```:
|
||
* ```ZoomIn``` - ```CTRL +```(相对于视口中心放大)
|
||
* ```ZoomOut``` - ```CTRL -```(相对于视口中心缩小)
|
||
* ```SelectAll``` - ```CTRL A```(选择所有项目)
|
||
* ```BringIntoView``` - 将视口移动到指定位置,默认为[0,0]。(```CommandParameter```为类型为```Point```或```string```的位置)
|
||
* ```Align``` - 使用指定的对齐方法对齐选定的项目,默认为顶部。(```CommandParameter```为类型为```Alignment```或```string```的对齐方法。可能的对齐方法:Top、Left、Bottom、Right、Middle、Center)
|
||
* ```FitToScreen``` - 缩放并移动```Viewport```以显示尽可能多的项目
|
||
|
||
## 编辑器API
|
||
|
||
您可以在`NodifyEditor`实例上以编程方式调用这些命令的相应方法。
|
||
|
||
* FitToScreen
|
||
* BringIntoView
|
||
* ZoomAtPosition
|
||
* ZoomIn
|
||
* ZoomOut |