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

使用 Silverlight 建構工作流設計器(七):滑鼠拖曳自動生成規則與連接點優化

     編輯:關於ASP.NET

使用者體驗優化:拖曳建立連線

原流程:點「新增規則」→ 拖曳起點關聯活動 → 拖曳終點關聯活動。優化後:在活動中心區域按下滑鼠拖曳,自動建立臨時規則,起點鎖定該活動,終點跟隨滑鼠移動,釋放時若落在另一活動上則確認關聯,否則取消。

拖曳自動生成規則示意

實作步驟

  1. 在活動 XAML 中加入半透明黃色圓形(Ellipse)作為中心觸發區。
  2. 處理該區域 MouseLeftButtonDown 事件:建立臨時規則,設定 IsTemporaryRule = true,起點關聯當前活動,終點位置同步滑鼠座標,加入容器並置於最高 Z-Index。
  3. 滑鼠移動時更新臨時規則終點位置;釋放時檢測是否落在其他活動上,是則轉為正式規則,否則移除臨時規則。
if (_container.CurrentTemporaryRule == null)
{
    _container.CurrentTemporaryRule = new Rule(_container);
    _container.CurrentTemporaryRule.IsTemporaryRule = true;
    _container.AddRule(_container.CurrentTemporaryRule);
    _container.CurrentTemporaryRule.SetBeginActivity(this);
    _container.CurrentTemporaryRule.EndPointPosition = _container.CurrentTemporaryRule.BeginPointPosition;
    _container.CurrentTemporaryRule.ZIndex = _container.NextMaxIndex;
}

連接點移至活動邊緣

網友建議連線端點應在活動邊緣而非中心。配合上一章的交點平滑移動邏輯,連線自動計算與活動幾何邊界的交點,視覺更自然。

活動中心觸發區示意
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved