示例#1
0
 private void Linked(object obj)
 {
     if (текущаяСвязь != null && obj is БазовыйОбъект)
     {
         БазовыйОбъект curObj = obj as БазовыйОбъект;
         if (ArrowSetLink(curObj) != null)
         {
             // если не нарушает условий страшной логики
             текущаяСвязь.ОбъектПредыдущий = объектВыбранный;
             текущаяСвязь.ОбъектСледующий  = curObj;
             curObj.AddArrows(текущаяСвязь);
             текущаяСвязь.X2 = curObj.Margin.Left; текущаяСвязь.Y2 = curObj.Margin.Top + curObj.Height / 2;
         }
         else
         {
             ArrowBreak();
         }
     }
 }
示例#2
0
        public void ArrowBegin()
        {
            if (объектТекущий != null)
            {
                объектВыбранный =о бъектТекущий; объектТекущий = null;
            }
            if (объектВыбранный != null)
            {
                текущаяСвязь                 = new Связь();
                offset.X                     = объектВыбранный.Margin.Left + объектВыбранный.Width; offset.Y = объектВыбранный.Margin.Top + объектВыбранный.Height / 2;
                текущаяСвязь.Stroke          = Brushes.Red;
                текущаяСвязь.StrokeThickness = 3;
                текущаяСвязь.X1              = offset.X;
                текущаяСвязь.Y1              = offset.Y;
                ArrowEndChange();

                AreaGrid.Children.Add(текущаяСвязь);
                Panel.SetZIndex(текущаяСвязь, -1);
                текущаяСвязь.ОбъектПредыдущий = объектВыбранный;
                объектВыбранный.AddArrows(текущаяСвязь);
            }
        }