Здравcтвуйте, подскажите в чем может быть проблема, при добавлении элемента (элемент представляет собой UserControl и эллипсы) на Canvas (холст), я могу отслеживать координаты эллипсов только, только что добавленного элемента.
Если вкратце, добавляю элемент на холст, отслеживаются координаты эллипсов, добавляю новый элемент, отслеживаются координаты эллипсов нового элемента, а при перемещении старого, координаты эллипсов старого элемента не отслеживаются.
if (e.LeftButton == MouseButtonState.Pressed && url == "resistor.png")
{
resistor_UC rs = new resistor_UC();
EoE = new EllipseOfElement { EllipseOfUC = rs.ResEl1, EllipseOfUC2 = rs.ResEl2 };
rs.ResEl1.MouseRightButtonDown += ResEl1_MouseRightButtonDown;
Random rnd = new Random();
vm = new ViewModel { SelectedControl = rs, Pos=new Point(rnd.Next(100,300), rnd.Next(100, 300)) };
ShortNameOfElement["resistor"] += 1;
rs.ResistorTextBlock.Text = "R" + (ShortNameOfElement["resistor"]);
FullElement.VisMod.Add(vm);
FullElement.EllipsesOfElements.Add(EoE);
}
if (e.LeftButton == MouseButtonState.Pressed && url == "battary.png")
{
battary_UC btr = new battary_UC();
btr.BtEl1.MouseRightButtonUp += BtEl1_MouseRightButtonUp;
EoE = new EllipseOfElement { EllipseOfUC = btr.BtEl1, EllipseOfUC2 = btr.BtEl2};
Random rnd = new Random();
vm = new ViewModel { SelectedControl = btr, Pos = new Point(rnd.Next(100, 300), rnd.Next(100, 300)) };
ShortNameOfElement["battary"] += 1;
btr.BattaryTextBlok.Text = "B" + (ShortNameOfElement["battary"]);
FullElement.VisMod.Add(vm);
FullElement.EllipsesOfElements.Add(EoE);
}
private void ContentPresenter_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
var p = e.GetPosition(this);
obj.MoveRef(p - PosObj);
PosObj = p;
PosOfEl = EoE.EllipseOfUC.TransformToVisual(ic_canvas).Transform(new Point(EoE.EllipseOfUC.ActualHeight / 2, EoE.EllipseOfUC.ActualWidth / 2));
PosOfEl2 = EoE.EllipseOfUC2.TransformToVisual(ic_canvas).Transform(new Point(EoE.EllipseOfUC.ActualHeight / 2, EoE.EllipseOfUC.ActualWidth / 2));
Title = "Первый элипс" + PosOfEl.ToString() + " Второй элипс" + PosOfEl2.ToString();
}
}
public class EllipseOfElement : INotifyPropertyChanged
{
Ellipse ellipseOfUC;
public Ellipse EllipseOfUC
{
get { return ellipseOfUC; }
set
{
ellipseOfUC = value;
}
}
Ellipse ellipseOfUC2;
public Ellipse EllipseOfUC2
{
get { return ellipseOfUC2; }
set
{
ellipseOfUC2 = value;
}
}
public Point posOfEllipse;
public event PropertyChangedEventHandler PropertyChanged;
public Point PosOfEllipse
{
get { return posOfEllipse; }
set
{
posOfEllipse = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("PosOfEllipse"));
}
}
}
Добавляю элемент (vm), добавляю эллипсы (EoE). ПОможет даже идея хотя бы.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Имеется richtextbox, текст в нем меняется по клику кнопки, у каждого куска текста есть свой заголовок
На форме есть dataGridView1 и dataGridView2При запуске формы dataGridView1 заполняется тремя столбцами из файла mdb