Динамическое увеличение изображения на выбранной части - PullRequest
0 голосов
/ 21 декабря 2010

Я хочу создать пользовательский элемент управления для изображения, касающийся функции динамического масштабирования, основанной на выбранной части. Это подобно увеличению масштаба в программе чтения PDF-файлов. Я использовал иерархию панели стека, средства просмотра прокрутки, холста и затем изображенияМожет кто-нибудь сказать мне, как увеличить выбранную часть прямоугольника, как масштабирование?? 1001 *

Ответы [ 2 ]

0 голосов
/ 02 февраля 2011

На самом деле проблема заключается в расчете скорости масштабирования выбранной области. Мы должны подогнать выбранную область под размер окна. Для этого мы постоянно увеличиваем выбранную часть на один процент и каждый раз проверяем размер окна. Если размер окна больше, то мы прекращаем увеличивать выделенную область.

логика как

    double rate=0;
    while (true)
    {
        if (selectImageHeight * (st.ScaleY + rate) < this.ActualHeight && selectImageWidth * (st.ScaleX + rate) < this.ActualWidth)
                            rate += 0.01;
                        else
                            break;
     }
     Zoom(rate);

Здесь o.o1 означает один процент, это означает окно. Глубокое масштабирование возможно при использовании кода и значений ScrollToHorizontOffset и ScrollToVerticalOffset прокрутки.

0 голосов
/ 21 декабря 2010

Вы должны применить свое вращение, масштабирование и т. Д. Как RenderTransform к изображениюЗатем вам нужно убедиться, что изображение содержится внутри чего-то, что обрезает результаты, например, в сетке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...