سؤال

يحتاج طلبي إلى عنصر تحكم في عرض نقطات (JPG) ولكن أيضًا التكبير وتصنيعها (لذلك إذا ضغطت على زر الماوس ، يمكنك "تحريك" الصورة الداخلية داخل الإطار)

ما فعلته هو وضع اللوحة في النموذج ، ثم Picturebox داخل لوحة (أعلى ، يسار).
لذا ، إذا كنت بحاجة إلى تكبير ، فأنا أقوم بتنفيذ الكود أدناه من أحداث بزارات Zoom:

    private void ZommInOut(bool zoom) {
        int zoomRatio   = 10; // percent
        int widthZoom   = pBox.Width * zoomRatio /100;
        int heightZoom  = pBox.Height  * zoomRatio /100;

        if (zoom) {
            widthZoom   *= -1;
            heightZoom  *= -1;
        }

        pBox.Width  += widthZoom;
        pBox.Height += heightZoom;
    }

يعمل تافهة جيدا. تم تكبير الصورة ، وعرض لوحة أشرطة التمرير - لذلك أعمل وظائف البناء البسيطة.

ما هو مفقود بالنسبة لي هو إمكانية استخدام الماوس للفرقة - أرغب في سحب الصورة في أي اتجاه لرؤية جزء آخر من الصورة (كما يفعل قارئ Acrobat).
لقد بحثت عن طريقة للاستخدام تحرك الماوس الحدث وتغيير شريط التمرير برمجيًا ، لكنني لم أستطع إدارة ذلك.

أي اقتراحات)؟

هل كانت مفيدة؟

المحلول

تحتاج إلى تعيين ملف AutoScrollPosition الممتلكات في حدث موسميوف.

ستحتاج إلى تتبع موقع حدث Mousedown وتحديث AutoScrollPosition باستخدام إزاحة.

نصائح أخرى

أود أن أقترح إنشاء عنصر تحكم ورسم جزء من الصورة باستخدام الرسومات. يمكنك تجاوز onMousemove للحصول على حركات mosue

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top