Blog chia sẽ kinh nghiệm lập trình và Technical VN. Nơi mà các bạn có thể học tập và tham khảo về những công nghệ mới nhất hiện nay về .NET
Chủ Nhật, 26 tháng 4, 2015
Hôm nay tôi sẽ giới thiệu đến các bạn một thư viện mở(GalaSoft.Utilities) giúp chúng ta có thể tạo một ứng dụng có thể zoom.
Tôi có thiết kế giao diện như sau:
- CheckBox để ẩn/hiện kính Lúp
- Slider thay đổi chiều rộng kính
- Slider thay đổi chiều cao kính
- Slider thay đổi độ thu/phóng của kính
Chú ý: Kính lúp được mặc định là hình TRÒN, điều này có thể được thay đổi.

Chúng ta sẽ Attach Zoom Behavior trong thư viện GalaSoft.Utilities vào Root Grid Control(là vùng chúng ta muốn kính hoạt động)và binding đến các control đã thiết kế ở trên:
Kết quả
Chúng ta có thể thay đổi hình chiếc kính lúp bằng cách thay đổi Control Template của nó:
1-> Đầu tiên tôi định nghĩa 2 Template
2 -> Sau đó tôi tạo một group RadioButton (Rb1 và Rb2):
Thể hiện lại 2 Template trên, khi người dùng chọn một trong hai RadioButton này thì tôi sẽ gán Template mà nó đang giữ cho ZoomControl(tức x:Name="MyZoom")
Kết quả ta có 2 button để select kiểu kính lúp(góc trên trái 10h)

Code.CS
#region
using System.Windows;
using System.Windows.Controls;
#endregion
namespace ZoomBehavior
{
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
///
/// Change the magnifier's template
///
private void TemplateRadioButton_Click(object s, RoutedEventArgs e)
{
var sender = s as RadioButton;
// Thay đổi hình dạng kính lúp
MyZoom.Template = sender.Template;
}
}
}
Đến đây bạn có thể làm Thánh Soi được rồi, có thể thêm tính năng mở file ảnh để show cho tiện soi

Tải về source tại đây
Vậy là chúng ta đã hoàn thiện một chiếc kính lúp cho ứng dụng của mình, chúc các bạn thành công!
Phạm Tuân.
Search
Popular Posts
-
Phong cách thiết kế Material Design nhắm đến những đường nét đơn giản, sử dụng nhiều mảng màu đậm nổi bật, các đối tượng đồ họa trong giao ...
-
Hôm nay tôi sẽ giới thiệu với các bạn một Framework đến từ Microsoft - framework này không quá lớn nhưng là khá mạnh khi các bạn làm việc vớ...
-
WPF vượt trội hơn Winform về khoản Drawing , trong đó đặc biệt WPF hỗ trợ đồ họa rất tốt vì nó tương tác trực tiếp đến GPU. Hôm nay chúng t...
-
Hôm nay chúng ta sẽ tìm hiểu cách tạo ra các menu chuột phải trên ứng dụng WPF của mình. Ở bài này chúng ta xoay quanh việc tìm hiểu cách tạ...
-
Để dễ hiểu, các bạn hãy hình dung rằng: cùng một tập tin thực thi *.EXE nhưng bạn DoubleClick 10 lần cách quãng vào nó thì chuyện gì sẽ sảy ...
-
Trong bài viết trước tôi có giới thiệu về Extension Methods trong nguôn ngữ lập trình C#; hôm nay tôi sẽ nói về một vấn đề có ý nghĩa tương...
-
Hôm nay chúng ta sẽ thử đo xem thời gian query Data của "Foreach vs LinQ vs LinQasParallel" như thế nào. Tôi tạo một tool nhỏ để l...
-
Data Binding là kĩ thuật dùng để tạo gắn kết giữa phần giao diện ( UI ) và dữ liệu thông qua phần business logic hoặc giữa các đối tượng UI...
-
LOG4NET là một thư viện mã nguồn mở cho phép chúng ta tạo ra một hoặc nhiều tập tin log, kiểu log cũng như nội dung log một cách linh hoạt v...
-
Sau hai bài giới thiệu về Caliburn.Micro framework, hôm nay chúng ta sẽ cùng bắt tay vào làm một dự án nhỏ - HelloWorld. Step 1: Add referen...
Recent Posts
Blog Archive
-
▼
2015
(48)
-
▼
tháng 4
(9)
- WPF - Làm Sao Show Được Menu Mặc Định Của Hệ Thống...
- WPF - Tìm Hiểu Về Attached Behaviors Trong WPF
- WPF Library - Tạo Kính Lúp Cho Ứng Dụng WPF (Zoom ...
- WPF - Sự Khác Nhau Giữa StaticResource với Dynamic...
- C# - XML Serialization and Deserialization(Lưu Trữ...
- C# - Tùy Chọn Khởi Động Cùng Windows Cho Ứng Dụng
- WPF – Cơ Bản Về Data Binding Trong WPF
- WPF - Tổng quan về Windows Presentation Foundation
- WPF Training – Drag and Drop Trong WPF Part II
-
▼
tháng 4
(9)
0 nhận xét:
Đăng nhận xét