首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

使用 Silverlight 建構工作流設計器(十一):增強使用者體驗——規則曲線雙控制點、對齊功能與鍵盤操作

     編輯:關於ASP.NET

本章功能亮點

  • 規則曲線支援兩個可拖曳的中間控制點
  • 雙擊控制點自動對齊曲線
  • 多選活動時支援左右、上下對齊

規則曲線雙控制點實作

建立獨立使用者控制項 RuleTurnPoint 代表控制點,僅包含一個綠色圓形(Ellipse),並處理滑鼠拖曳事件:

<UserControl x:Class="Shareidea.Web.UI.Control.Workflow.Designer.RuleTurnPoint"
 xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">
 <Canvas>
   <Canvas.Resources>
     <Storyboard x:Name="sbDisplay">
       <DoubleAnimation From="0" To="0.8" Duration="00:00:1.0"
         Storyboard.TargetName="eliTurnPoint" Storyboard.TargetProperty="Opacity" />
     </Storyboard>
     <Storyboard x:Name="sbClose">
       <DoubleAnimation From="0.8" To="0.0" Duration="00:00:1.0"
         Storyboard.TargetName="eliTurnPoint" Storyboard.TargetProperty="Opacity" />
     </Storyboard>
   </Canvas.Resources>
   <Ellipse Name="eliTurnPoint" Width="8" Height="8" Fill="Green" Opacity="0.8"
     MouseLeftButtonDown="Canvas_MouseLeftButtonDown"
     MouseLeftButtonUp="Canvas_MouseLeftButtonUp"
     MouseMove="Canvas_MouseMove" />
 </Canvas>
</UserControl>

規則類別內部維護兩個 RuleTurnPoint 實例,根據控制點位置重新計算貝茲曲線或折線幾何路徑。雙擊控制點時,自動將該點移至起迄點連線的中點,實現「自動對齊」。

多選對齊與鍵盤支援

  • 容器維護 CurrentSelectedControlCollection 儲存選取物件。
  • 對齊功能:計算選取群組的邊界,將所有物件的 Top/Left 統一對齊至最小/最大值。
  • 鍵盤事件:KeyDown 偵測方向鍵與 Ctrl、Shift 修飾鍵,移動選取群組;Ctrl+A 全選、Ctrl+C/V 複製貼上、Delete 刪除、Ctrl+Z 復原。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved