Придвижвайте се с мишката в картината в кутията с картинки

Искам да мога да плъзгам 100% увеличена картина в картинна кутия: http://spunit.tk/x/dragpic1.png.

Искам да работи точно като Windows Photo Viewer: http://spunit.tk/x/dragpic2.png.

Как е възможно?


person spunit    schedule 05.08.2013    source източник
comment
Не използвайте свойството Image, вместо това ще трябва да използвате събитието Paint. Отнема доста голяма част от кода.   -  person Hans Passant    schedule 05.08.2013
comment
това winforms ли е или wpf?   -  person Avram Tudor    schedule 05.08.2013


Отговори (1)


Вярвам, че трябва да поддържате координатите на тази картинна кутия, също така да зададете нейния стил на изглед на пълно изображение, без никакво разтягане.

След това ще ви трябват три събития на мишката: мишка надолу, мишка нагоре и преместване на мишката, където можете да получите координатите на мишката и да заснемете или освободите мишката, за да преведете полето с картина според делта превода на мишката.

person AgentFire    schedule 05.08.2013
comment
Какво имаш предвид под координати на тази картинна кутия? Горната и лявата му част и размерът трябва да бъдат еднакви. И сега, когато се увеличи по този начин, неговият SizeMode е настроен на Zoom, което изглежда работи правилно. Но относно събитията, струва ми се, че това би било правилно. Бърках се с това, но не мога да разбера как наистина да го направя... - person spunit; 05.08.2013
comment
Искам да кажа, че трябва да промените горната и лявата част на картинната кутия, за да симулирате движението на изображението. - person AgentFire; 05.08.2013
comment
О... Така че, когато картината е преместена надолу с 1 px, Top = -1 и Height = 1 px. Имаш предвид така? - person spunit; 05.08.2013
comment
Когато изображението трябва да се премести надолу от [0; 0] до [0; 1], свойството Left на полето за картина остава 0, а неговото свойство Top става 1. - person AgentFire; 05.08.2013
comment
Хммм, ще го пробвам. Благодаря. - person spunit; 05.08.2013