private void showTarget() { if (Target == null) { return; } Target.RemoveAll(it => it.ColumnName.ToUpper() == "FID" || it.ColumnName.ToUpper() == "PROJECTID"); for (int i = 0; i < Target.Count; i++) { ColumnTargetItem item = new ColumnTargetItem(); item.ColumnName = Target[i].ColumnName; item.ColumnValue = Target[i].Comments; item.DataType = Target[i].DataType; item.NullAble = Target[i].NullAble; item.cbpk.Click += cbpk_Click; item.Index = i; if (_businessPk.Contains(item.ColumnName)) { item.cbpk.IsChecked = true; } Canvas.SetTop(item, 30 * i); Canvas.SetLeft(item, 554); root.Children.Add(item); targetItemList.Add(item); } }
private void ColumnTargetItem_MouseUp(object sender, MouseButtonEventArgs e) { targetItem = sender as ColumnTargetItem; tempLine.X2 = getEndLocation().Width; tempLine.Y2 = getEndLocation().Height; sourceItem = null; targetItem = null; tempLine = null; }
private void root_MouseUp(object sender, MouseButtonEventArgs e) { var p = e.GetPosition(root); // 已选中项,红框显示,无法形成链接 VisualTreeHelper.HitTest(root, null, f => { var element = f.VisualHit; if (element is Border) { object tag = ((Border)element).Tag; if (tag != null) { string columnName = tag.ToString(); var target = targetItemList.FirstOrDefault(item => item.ColumnName == columnName); if (target != null && sourceItem != null) { targetItem = target; if (!ColumnMap.ContainsKey(targetItem.ColumnName)) { drawLine(sourceItem.ColumnName, targetItem.ColumnName); ColumnMap.Add(targetItem.ColumnName, sourceItem.ColumnName); targetItem.ColumnValue = sourceItem.ColumnName; TableDAL.Comment(TableName, targetItem.ColumnName, sourceItem.ColumnName); } } } } return(HitTestResultBehavior.Continue); }, new PointHitTestParameters(p)); // 未选中项,记录选中项,画线 root.ReleaseMouseCapture(); root.Children.Remove(tempLine); tempLine = null; sourceItem = null; }