2011-10-20 46 views
6

Tôi có một ánh sáng bạc Canvas chứa ảnh có bản vẽ trên đó (đa giác). Tôi cần phát triển điều khiển để thu phóng và xoay khung này trong khu vực làm việc (Border trong một ô Grid, như bây giờ) như được hiển thị bên dưới. Cách tốt nhất để làm việc này là gì. Có thư viện nào tôi có thể sử dụng không?Thu phóng và xoay khung hình ảnh

Tôi cũng cần có thể thêm bản vẽ vào canvas được thu phóng/thu nhỏ.

http://i54.tinypic.com/1zbe7pf.png

+0

Bạn muốn thanh trượt thu phóng thực sự phóng to canvas chính nó thay vì hình ảnh sao cho canvas sẽ lấp đầy toàn bộ vùng làm việc? – Jack

+0

có. kể từ khi các dấu hiệu trên hình ảnh nên được đặt ra. – blitzkriegz

+0

liệu canvas có được lấp đầy toàn bộ khu vực làm việc hay không tùy thuộc vào mức độ phóng to được đặt bằng cách sử dụng thanh trượt thu phóng. – blitzkriegz

Trả lời

1

Bạn có thể thử tạo một UserControl rằng về cơ bản là một hình ảnh bên trong một canvas, và phơi bày hai chuyển đổi thuộc tính để kiểm soát phóng to và panning. Một ScaleTransform sẽ xử lý thu phóng, và một TranslateTransform sẽ xử lý panning. Bạn có thể tạo một CompositeTransform từ cả hai và gán nó như là RenderTransform của canvas.

Bạn có thể liên kết thanh trượt thu phóng với ScaleTransform và xử lý các sự kiện chuột để thay đổi TranslateTransform. Miễn là bạn nhận được tọa độ chuột tương ứng với chính canvas sẽ hoạt động (ví dụ: mouseEventArgs.GetPosition(canvas)).

2

Rất nhiều ví dụ mã có sẵn trên internet. Hãy xem ZoomControlCodePlex.

+2

+1, tại sao tái tạo bánh xe. –

Các vấn đề liên quan