Помогите с решением:
Есть Элемент panel в которой размещается элемент PictureBox (в котором находится картинка) при определенных условиях (ZoomIn) размер PictureBox становится больше чем у panel. Включается автоскроллинг.
Посему вопрос. Как лучше всего организовать такую фичу: юзер "хватает" картинку (MouseDown) и далее при перемещении мышки (MouseMove) картинка начинает перемещаться в соответствии с курсором.
В общем это аналог инструмента Hand Tool в Фотошопе.
Лучше если исходничком поможете, но и советы принимаются

.
Здравствуйте, jollyck, Вы писали:
J>Помогите с решением:
J>Есть Элемент panel в которой размещается элемент PictureBox (в котором находится картинка) при определенных условиях (ZoomIn) размер PictureBox становится больше чем у panel. Включается автоскроллинг.
J>Посему вопрос. Как лучше всего организовать такую фичу: юзер "хватает" картинку (MouseDown) и далее при перемещении мышки (MouseMove) картинка начинает перемещаться в соответствии с курсором.
J>В общем это аналог инструмента Hand Tool в Фотошопе.
J>Лучше если исходничком поможете, но и советы принимаются
.
=)ну вот примерно ,только тут таскаю обьект панель по такому же принципу можно и картинку )
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication35
{
public partial class Form1 : Form
{
bool isdrag;
int px, py;
public Form1()
{
InitializeComponent();
}
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
px = e.X;
py = e.Y;
isdrag = true;
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (isdrag)
{
panel1.Left += e.X - px;
panel1.Top += e.Y - py;
}
}
private void panel1_MouseUp(object sender, MouseEventArgs e)
{
isdrag = false;
}
}
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, codenet, Вы писали:
C>Здравствуйте, jollyck, Вы писали:
J>>Помогите с решением:
J>>Есть Элемент panel в которой размещается элемент PictureBox (в котором находится картинка) при определенных условиях (ZoomIn) размер PictureBox становится больше чем у panel. Включается автоскроллинг.
J>>Посему вопрос. Как лучше всего организовать такую фичу: юзер "хватает" картинку (MouseDown) и далее при перемещении мышки (MouseMove) картинка начинает перемещаться в соответствии с курсором.
J>>В общем это аналог инструмента Hand Tool в Фотошопе.
J>>Лучше если исходничком поможете, но и советы принимаются
.
ой сори я и вопрос не доконца понял...
нупринцип такойже таскать image внутри панели, а панель скролится будет
просто проверки при перетаскивании делать наподобие
if(pictureBox1.Left < 0 || px > e.X)
и
isdrag = false;
когда курсор не над картинкой
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Помогите с решением:
Есть Элемент panel в которой размещается элемент PictureBox (в котором находится картинка) при определенных условиях (ZoomIn) размер PictureBox становится больше чем у panel. Включается автоскроллинг.
Посему вопрос. Как лучше всего организовать такую фичу: юзер "хватает" картинку (MouseDown) и далее при перемещении мышки (MouseMove) картинка начинает перемещаться в соответствии с курсором.
В общем это аналог инструмента Hand Tool в Фотошопе.
Лучше если исходничком поможете, но и советы принимаются

.
http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c57c.aspx#q493q
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/scrollbars/scrollbarreference/scrollbarfunctions/scrollwindow.asp
Соответсвенно, перегружай MouseMove, сохраняй там положение мыши и, если зажата кнопка, то сдвигай видимую область панели по оффсетам (текущее положение мыши минус предыдущее).
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение