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


Автор: mrLIS 1.10.2008, 13:29
Всем приве. Есть некая карта. Есть миникарта, которая служит для навигации. Как в этой мини карте отобразить полную крату?
Для WPF есть TileBrush - свойство, в котором можно указать контрол кот. нужно показывать, а в SV такое не прокатит.... 

И еще небольшой вопрос. Есть Канвас, внутри него Rectangle, как сделать так чтобы при увеличении  Rectangle, его часть которая вышла за пределы Canvas была невидна. 
Спасибо.... )

Автор: mrLIS 2.10.2008, 20:55
Всем привет.. 
Бьюсь в истерике но не пойму как исправить.. 
Есть Canvas который мы передвигаем мышькой по. 
код такой:
 
Код

private void GridTable_MouseMove(object sender, MouseEventArgs e)
        {
            if (MouseClick)
            {
               // double X = senderObject.Margin.Left;
               // int i = 1;
                double currentX = e.GetPosition(GridTable).X;
                double currentY = e.GetPosition(GridTable).Y;
                Canvas.SetLeft(senderObject, currentX - offsetX);
                Canvas.SetTop(senderObject, currentY - offsetY);
                
            }
        }
        private void CanvasMove_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            senderObject = CanvasMove;
            MouseClick = true;
            senderObject.CaptureMouse();
            offsetX = e.GetPosition(GridTable).X;
            offsetY = e.GetPosition(GridTable).Y;
            int i = 1;
            //Positioning the dragger in such a way that the mouse pointer is at the center of the dragger
            //Canvas.SetLeft(CanvasMove, e.GetPosition(GridTable).X - CanvasMove.Width * .5);
            //Canvas.SetTop(CanvasMove, e.GetPosition(GridTable).Y - CanvasMove.Height * .5);
        }

        private void CanvasMove_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            //senderObject = CanvasMove;
            MouseClick = false;
            if (senderObject.CaptureMouse()) senderObject.ReleaseMouseCapture();
        }


Все передвигает нормально. Только гогда я начинаю передвигать CanvasMove он сначала возвращается на свое исходное место. Т.е. в отладчике видно что когда я начинаю передвигать CanvasMowe его Left и Top становяться нулями.  В чем может быть дело?

За ответы буду очень признателен!!!!


Автор: likegift 21.10.2008, 17:22
Цитата(mrLIS @ 2.10.2008,  20:55)
Всем привет.. 
Бьюсь в истерике но не пойму как исправить.. 
Есть Canvas который мы передвигаем мышькой по. 
код такой:
 
Код

private void GridTable_MouseMove(object sender, MouseEventArgs e)
        {
            if (MouseClick)
            {
               // double X = senderObject.Margin.Left;
               // int i = 1;
                double currentX = e.GetPosition(GridTable).X;
                double currentY = e.GetPosition(GridTable).Y;
                Canvas.SetLeft(senderObject, currentX - offsetX);
                Canvas.SetTop(senderObject, currentY - offsetY);
                
            }
        }
        private void CanvasMove_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            senderObject = CanvasMove;
            MouseClick = true;
            senderObject.CaptureMouse();
            offsetX = e.GetPosition(GridTable).X;
            offsetY = e.GetPosition(GridTable).Y;
            int i = 1;
            //Positioning the dragger in such a way that the mouse pointer is at the center of the dragger
            //Canvas.SetLeft(CanvasMove, e.GetPosition(GridTable).X - CanvasMove.Width * .5);
            //Canvas.SetTop(CanvasMove, e.GetPosition(GridTable).Y - CanvasMove.Height * .5);
        }

        private void CanvasMove_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            //senderObject = CanvasMove;
            MouseClick = false;
            if (senderObject.CaptureMouse()) senderObject.ReleaseMouseCapture();
        }


Все передвигает нормально. Только гогда я начинаю передвигать CanvasMove он сначала возвращается на свое исходное место. Т.е. в отладчике видно что когда я начинаю передвигать CanvasMowe его Left и Top становяться нулями.  В чем может быть дело?

За ответы буду очень признателен!!!!

если еще актуально, могу поглядеть как я реализовывал

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