Add project files.

This commit is contained in:
Ankitkumar Satapara
2026-04-17 22:31:58 +05:30
commit 21aaef6776
473 changed files with 50152 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
## 目录
* [移动视口](#平移)
* [缩放](#缩放)
* [选择项目](#选择)
* [选择功能相关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