Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > перемещение Canvas


Автор: rarxxx 8.11.2010, 15:02
Сделал Форму 
Код
System.Windows.Forms.Form

(окно потому что должно быть MDi)

добавил Canvas сделал первым элементом рисунок jpeg ну и Poligon'ов чтук 7 (типо карту загружаешь и ресуешь на ней полигоны)
но при перемещении или увеличении(скролом) все это подтормаживает ) кто нить может подсказать я неправельный путь выбрал что связался с Canvas или что )
пытался без картинки просто 1 полигон но при перемещении тож тормозит(при этом если просто перемещать полигон по Canvas полигон двигается плавно)

начинаю понимать что скорей всего проблема с прорисовкой  у System.Windows.Forms.Form(MyForm.Refresh(); использую но кажеца зря)
может вариант сделать canvas и вложить в него canvas с элементами и двигать уже второй canvas но сток переписывать....)
вот и решил спросить ибо пока чайник в c# wpf итп)
у второго canvas могут  HorizontalAlignment и VerticalAlignment быть отрицательные?


Код

ElementHost host = new ElementHost();
host.Child = MyCanvas;
splitContainer1.Panel1.Controls.Add(host);

        void OnMouseMove(object sender, MouseEventArgs args)
        {
            args.Handled = true;
            
            Point ptMouse = args.GetPosition(MyCanvas);

           if (isDragginCanvas)
            {
                newX = ptMouse.X - ptMouseStart.X;
                newY = ptMouse.Y - ptMouseStart.Y;
                host.Left = host.Left + Convert.ToInt32(newX);
                host.Top = host.Top + Convert.ToInt32(newY);
                MyForm.Refresh();
            }
        }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)