1. Trang chủ
  2. » Luận Văn - Báo Cáo

phần mềm thi trắc nghiệm tiếng anh

45 1,1K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 45
Dung lượng 2,21 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

phần mềm thi trắc nghiệm tiếng anh

Trang 1

Chương I: ĐẶT VẤN ĐỀ

I.1 Đưa ra bài toán

Đề tài thực hiện: “Phần mềm thi trắc nghiệm tiếng anh”

Cho đến nay tiếng Anh là môn học duy nhất cho phép thử nghiệm tất cả các hình thức câu hỏi trắc nghiệm mà chưa môn học nào đáp ứng được Phần mềm ra đời dựa trên nhu cầu thực tế của việc quản lý thi trắc nghiệm hiện nay Lưu trữ thông tin sinh viên, tạo đề thi, tạo lớp thi, quản lý điểm thi, cho sinh viên thi trực tiếp trên máy tính và có thể cho thí sinh biết ngay điểm thi sau khi thi xong

I.2 Hướng giải quyết bài toán

Xây dựng một phần mềm thi trắc nghiệm trên máy tính giải quyết các vấn đề

về thi trắc nghiệm Dựa trên nền tảng ngôn ngữ CShape WPF Application Cơ

sở dữ liệu lưu trữ trong SQL server

Các vấn đề của bài toán là:

- Quản lý thông tin sinh viên

- Quản lý ngân hàng đề thi

- Quản lý lớp thi

- Quản lý điểm thi

- Cho sinh viên thực hiện bài thi, lưu trữ bài thi

Dữ liệu được đặt trên máy chủ của phòng máy, tất cả sinh viên từ máy tínhkhác connect đến máy chủ để lấy dữ liệu thực hiện bài thi

Giáo viên, quản trị có thể quản lý mọi thông tin

Trang 2

I.3 Mục đích báo cáo

Tốt nghiệp là mốc quan trọng đánh dấu sự trưởng thành về chất của bảnthân mỗi sinh viên Bài báo cáo tóm gọn những kiến thức quý báu mà emđược học tập và tích lũy tại trường, cộng với kinh nghiệm cần thiết để thựchiện đồ án tốt nghiệp

Với sự nỗ lực trong suốt thời gian qua, em mong rằng bài báo cáo tốtnghiệp này, trình bày được những khía cạnh đầy đủ và hữu ích của một phầnlĩnh vực công nghệ thông tin Lĩnh vực mà ngày nay nước ta đang chú trọngphát triển Báo cáo là cách nhìn từ tổng quan tới chi tiết của những bài toán

trong cuộc sống được giải quyết bằng cách áp dụng công nghệ thông tin

Chương II GIỚI THIỆU CÔNG NGHỆ

II.1 Công nghệ WPF

1.1 Khái niệm đầu tiên về WPF

WPF là một công nghệ của microsoft hỗ trợ mạnh mẽ cho việc lập trình giaodiện đồ họa trên nền Windows cho các ứng dụng trên nền tảng dotnet WPFcung cấp hệ thống thư viện lớn mạnh hỗ trợ cho việc thiết kế giao diện, tăngcường tối đa khả năng sáng tạo của lập trình viên để tạo ra những chươngtrình có giao diện đẹp, thân thiện, trực quan và dễ sử dụng

Như ta thấy trong các ứng dụng hiện đại có yêu cầu rất cao trong việc thiết kếgiao diện Chương trình của bạn trước hết phải đẹp, bắt mắt, có nhiều hiệuứng trực quan, tính năng dễ sử dụng; Đặc biệt trong kỹ nguyên công nghệcảm ứng đa điểm và ứng dụng di động phát triển mạnh mẽ như hiện nay thìứng dụng hỗ trợ cảm ứng và chạy trên nhiều nền tảng được người dùng đặcbiệt quan tâm Việc Apple lần đầu tiên đưa ra Iphone với công nghệ lập trìnhứng dụng rất trực quan đã hướng thị hiếu con người sang một bước tiến mới

và buộc các hãng sảnxuất phần mềm phải rung chuyển có những thay đổi đi

để kịp xu hướng mới…

WPF bắt đầu được tích hợp trong dotnet framework 3.0 trở về sau So vớiviệc thiết kế giao diện khi lập trình Winform bạn sẽ thấy được những ưu thếvượt trội của WPF, tính mềm dẻo trong giao diện thực thi, khả năng tùy biếncao, giảm thiểu trường hợp vỡ khung, vỡ giao diện khi thay đổi kích thướcform… Trong WPF hỗ trợ nhiều control rất tiện ích có thể dễ dàng sử dụng,

Trang 3

để có một control tương tự trong winform bạn phải mất nhiều thời gian để tựthiết kế và hiệu quả đem lại không thể sánh bằng WPF.

1.2 Mục tiêu của công nghệ

Microsoft đi sâu vào 3 mục tiêu:

- Cung cấp một nền tảng chuẩn và thống nhất chung cho việc thiết kế giao diện người dùng cho các ứng dụng

- Tăng cường tính độc lập trong quá trình làm việc của người thiết kế và người lập trình Mỗi bên có thể làm việc độc lập theo những chuẩn quy định trước và sẽ dễ dàng trong việc kết nối công việc với nhau

- Hướng tới nền tảng công nghệ chung nhất để xây dựng giao diện cho cả ứngdụng web và ứng dụng desktop

1.3 Những điểm mạnh bên trong WPF

WPF được tích hợp bên trong nhiều nền tảng khác nhau và đồng thời có thể

xử lý tốt nhiều mảng công việc khác nhau trong khi trước đây cần phải kết hợp nhiều công nghệ riêng rẽ trong một ứng dụng để thực hiện những tác vụ khác nhau WPF hỗ trợ xử lý giao diện, cung cấp các control từ cơ bản tới chuyên sâu, hỗ trợ mạnh mẽ cho việc xử lý text, không chỉ thế còn được tích hợp tính năng xử lý âm thành, hình ảnh, video, đồ họa 2D, 3D…

Trang 4

1.4 Khái niệm XAML trong WPF

XAML ( eXtensible Application Markup Language ) là một ngôn ngữ đặc tảtương tự như XML Trong WPF các mã thiết kế control trong C# được ánh

xạ tương ứng sang XAML và mọi thứ được đơn giản hơn rất nhiều giúpngười thiết kế nhanh chóng tạo ra giao diện đẹp tốn ít thời gian thiết kế Mọi

mã thiết kế trong C# đều tồn tại một mã XAML tương ứng

Như ta thấy trong lập trình winform truyền thống một người để thiết kế đượcgiao diện tốt thì ngoài hiểu biết đồ họa, thiết kế thì cần phải biết cả C#, mức

độ biết không chỉ đơn thuần là cơ bản mà phải am hiểu tường tận từng control–cấu trúc – hoạt động… để phân tích giao diện khi có những thay đổi về kíchthước, diện mạo, vị trí hay nói cách khách khi người dùng customize giaodiện… phải đảm bảo không xảy ra trường hợp vỡ giao diện, control bị xếpchồng Và tất nhiên để yêu cầu 1 người chuyên thiết kế nghiên cứu lập trìnhkhông phải là giải pháp tốt Theo như truyền thống người thiết kế sẽ vẽ ragiao diện đồ họa dưới dạng ảnh tĩnh, sau đó cắt xén theo từng phần và gửi fileảnh cho người lập trình Người lập trình lúc này phải thiết kế ứng dụng sửdụng ảnh nền từ người thiết kế Mà ta thấy người thiết kế khi không am hiểutính chất của giao diện khi lập trình sẽ dẫn đến trường hợp giao diện được vẽ

ra rất khó có thể hiện thực hoặc người lập trình không làm trọn vẹn ý tưởngcủa người thiết kế do hạn chế bên mảng lập trình Như vậy đã sinh ra sự bấtđồng bộ trong khâu thiết kế và khâu lập trình, phát sinh nhiều khó khăn

XAML ra đời và đã giải quyết tốt vấn đề ở trên XAML là ngôn ngữ dễ học,

và bản thân WPF được hỗ trợ mạnh mẽ cho việc thiết kế giao diện Như vậyngười thiết kế sẽ làm việc trực tiếp lên giao diện thực và dễ dàng “hiện thựchóa” ý tưởng thiết kế của mình Sau khi hoàn tất giao diện hoàn thiện sẽ đượcchuyển qua cho người Lập trình Như vậy người lập trình sẽ giảm bớt đượckhâu thiết kế rất nặng nề Kết quả như ta thấy vấn đề nêu trên đã được giảiquyết rất ổn thỏa, khâu lập trình và thiết kế dễ dàng phối hợp với nhau trongkhi khả năng làm việc độc lập được tăng cao

Để thiết kế giao diện ứng dụng WPF ngoài Visual Studio Microsoft còn cócông cụ chuyên dụng chỉ dành chi việc thiết kế: Microsoft ExpressionInteractive Designer Mối quan hệ giữa người thiết kế và người lập trình đượcbiểu thị thông qua quan hệ giữa Microsoft Expression Interactive Designer <-

Trang 5

Đến với WPF đã đưa ra giải pháp cho việc thống nhất giao diện của 2 dạngứng dụng trên Cả 2 sẽ được đồng nhất trong việc thiết kế ứng dụng trênwindows, nghĩa là bạn chỉ cần thiết kế cho ứng dụng chạy trên windows vàứng dụng đó sẽ chạy được bình thường trên web mà ko cần làm gì thêm.

1.6 Tổng quan về Wpf

Giống như các thành phần khác của DotNet Framework, WPF tổ chức cácchức năng theo một nhóm namespace cùng trực thuộc namespaceSystem.Windows Bất kể chức năng nào được sử dụng, cấu trúc cơ bản củamọi ứng dụng WPF đều gần như nhau Là ứng dụng Windows độc lập hay làmột XBAP, một ứng dụng WPF điển hình bao giờ cũng gồm một tập cáctrang XAML và phần code tương ứng được viết bằng C# hoặc Visual Basic,còn gọi là các file code-behind Tất cả các ứng dụng đều kế thừa từ lớp chuẩnApplication của WPF Lớp này cung cấp những dịch vụ chung cho mọi ứngdụng, chẳng hạn như các biến lưu trữ trạng thái của ứng dụng, các phươngthức chuẩn để kích hoạt hay kết thúc ứng dụng

Mặc dù WPF cung cấp một nền tảng thống nhất để tạo giao diện người dùng,những công nghệ mà WPF chứa đựng có thể phân chia thành những thànhphần độc lập Nhân của WPF là cơ chế tạo sinh đồ họa dựa trên vector và độclập với độ phân giải nhằm tận dụng những lợi thế của phần cứng đồ họa hiệnđại WPF được mở rộng với các tập tính năng phát triển ứng dụng bao gồm

Trang 6

XAML, các control, cơ chế móc nối dữ liệu, layout, đồ họa 2 chiều, ba chiều,hoạt họa, style, khuôn dạng mẫu, văn bản, media, text và in ấn WPF nằmtrong NET Framework, nên ngoài ra, ứng dụng WPF có thể kết hợp cácthành phần khác có trong thư viện lớp của NET Framework.

Để sắp đặt các thành phần khác nhau trên giao diện, ứng dụng WPF sử dụngpanel Mỗi panel có thể chứa các thành phần con, bao gồm các control nhưnút bấm hay hộp thoại, hay bản than những panel khác Những loại panelkhác nhau cho phép sắp xếp thành phần con theo những cách khác nhau Ví

dụ, DockPanel cho phép các thành phần con có thể được đặt dọc theo cạnhcủa panel đó, trong khi Grid cho phép sắp đặt các thành phần con của nó trênmột lưới tọa độ

Giống như bất kỳ một công nghệ giao diện người dùng nào, WPF cung cấpmột số lượng lớn các control Ngoài ra, người dùng có thể tùy ý định nghĩacác control theo ý mình Các control chuẩn gồm Button, Label, TextBox,ListBox, Menu, Slider, hay phức tạp hơn có SpellCheck, PasswordBox… Các

sự kiện do người dùng tạo ra, như di chuyển chuột hay ấn phím, có thể đượccác control nắm bắt và xử lý Trong khi các control và các thành phần giaodiện khác có thể được đặc tả đầy đủ bằng XAML, các sự kiện bắt buộc phảiđược xử lý bằng mã trình

Trang 7

1.8 Style và Template

Giống như sử dụng Cascading Style Sheets (CSS) đối với HTML, việc định

ra thuộc tính đồ họa cho các đối tượng giao diện một lần, rồi sau đó áp dụnglại cho các đối tượng khác cùng loại thường rất tiện lợi WPF cũng cung cấptính năng tương tự bằng việc sử dụng thành phần Style của XAML

Một Style có thể được dẫn xuất từ một Style khác, thừa kế hoặc chồng lên

Để nâng cao hơn nữa chất lượng hiển thị text, WPF cho phép một số côngnghệ khác như chữ ghép, theo đó một nhóm ký tự được thay thế bằng một ảnhđơn nhất, tạo tâm lý thoải mái hơn khi đọc đối với người dùng

1.10 Văn bản

WPF hỗ trợ ba dạng văn bản: văn bản cố định (fixed), văn bản thích nghi(flow/adaptive) và văn bản XPS (XML Paper Specification) Kèm theo đó,WPF cũng cung cấp các dịch vụ để tạo, xem, quản lý, ghi chú, đóng gói và in

ấn văn bản Văn bản cố định trông không đổi bất kể chúng được hiển thị trênmàn hình hay in ra máy in

Trong WPF, những văn bản dạng này được định nghĩa bằng phần tửFixedDocument trong XAML và được hiển thị bằng controlDocumentViewer Trong khi đó, văn bản thích nghi thường chỉ dùng để đọctrên màn hình, và có khả năng tự động thay đổi các thuộc tính hiển thị ảnh và

Trang 8

text cho phù hợp với kích thước cửa số hay các yếu tố môi trường khác nhằmnâng cao chất lượng đọc cho người dùng Văn bản thích nghi được định nghĩabằng phần tử FlowDocument Để hiển thị văn bản thích nghi, WPF sử dụngmột số control khác nhau, chẳng hạn như FlowDocumentPageViewer,FlowDocumentScrollViewer, FlowDocumentReader…

1.11 Hình ảnh

Control Image có thể hiển thị hình ảnh lưu trữ dưới nhiều khuôn dạng khácnhau, bao gồm JPEG, BMP, TIFF, GIF và PNG Nó cũng có thể hiển thị hìnhảnh dạng Windows Media Photo mới được sử dụng trong Windows Vista Bất

kể ở khuôn dạng nào, WPF sử dụng Windows Imaging Component (WIC) đểtạo ra hình ảnh Cùng với các codec dùng cho các khuôn dạng ảnh kể trên,WIC cũng cung cấp một nền tảng chung để bổ sung codec khác

1.12 Video và Âm thanh

Khi tốc độ của các bộ xử lý và truyền thông mạng ngày một nâng cao, videotrở thành một phần tương tác lớn của người dùng với phần mềm Người dùngcũng sử dụng nhiều thời gian để nghe nhạc và các dạng âm thanh khác trênmáy tính Do đó, WPF cung cấp tính năng hỗ trợ cả hai dạng media này thôngqua phần tử MediaElement Control này có thể chơi các định dạng videoWMV, MPEG và AVI, và nhiều định dạng âm thanh khác nhau

1.13 Đồ họa hai chiều

Trong 20 năm gần đây, việc tạo ra đồ họa hai chiều trên Windows dựa trênGraphics Device Interface (GDI) và phiên bản sau của nó GDI+ Các ứngdụng Windows Forms phải sử dụng chức năng này thông qua một namespacekhác hoàn toàn, bởi bản thân Windows Forms không tích hợp đồ họa 2 chiều.Đối với đồ họa 3 chiều thì càng tồi hơn, Windows Forms phải dựa trên côngnghệ hoàn toàn biệt lập là Direct3D Với WPF, vấn đề trở nên đơn giản hơnnhiều Cả đồ họa 2 chiều và 3 chiều đều có thể được tạo ra trực tiếp trongXAML hoặc trong code sử dụng thư viện WPF tương ứng Đối với đồ họa 2chiều, WPF định ra nhóm control của các khuôn hình (shapes) mà ứng dụng

có thể sử dụng để tạo nên hình ảnh, gồm:

Line: Vẽ đường thẳng qua hai điểm

Ellipse: Vẽ Ellipse

Rectangle: Vẽ hình chữ nhật

Polygon: Vẽ đa giác

Polyline: Vẽ đa giác mở

Path: Vẽ hình theo một đường bất kỳ

1.14 Đồ họa ba chiều

WPF hỗ trợ đồ họa 3 chiều bằng việc gói các lời gọi API của Direct3D, và dovậy, việc sử dụng chúng trở nên thống nhất và đơn giản hơn đáng kể Để hiểnthị đồ họa ba chiều, ứng dụng WPF sử dụng control Viewport3D Để tạo ra

Trang 9

các cảnh ba chiều, lập trình viên mô tả một hay nhiều mô hình, sau đó phânđịnh cách thức các mô hình này được chiếu sáng hay hiển thị Như thường lệ,điều này được thực hiện bằng XAML, bằng code hay trộn cả hai Để mô tả

mô hình, WPF cung cấp lớp GeometryModel3D để tạo ra hình dạng của môhình Khi mô hình đã được định hình, diện mạo bên ngoài của nó có thể đượcđiều khiển bằng việc phủ lên các vật liệu (material) Chẳng hạn, lớpSpecularMaterial cho phép tạo bóng trên bề mặt mô hình

Bất kể được làm từ vật liệu gì, một mô hình có thể được chiếu sáng theonhiều cách Lớp DirectionalLight cho phép ánh sáng tới từ một hướng xácđịnh, trong khi lớp AmbientLight tạo ra ánh sáng đồng đều trên mọi vật trongcảnh Cuối cùng, để định ra cách nhìn cảnh, lập trình viên phải định ra mộtcamera Ví dụ, PerspectiveCamera cho phép phân định khoảng cách từ vị trínhìn tới vật thể và kiểu nhìn phối cảnh (tuân theo luật gần xa)

II.2 Kết hợp giữa WPF và Winform

Thứ nhất, Windows Form là một công nghệ ra đời đã khá lâu và ổn định Đa

số các ứng dụng desktop hiện nay đều được xây dựng trên Windows Form Trong khi đó, WPF chỉ mới xuất hiện được vài năm và nhiều lập trình viên vẫn quen thuộc với Windows Form hơn là WPF

Thứ hai, WPF dù có nhiều ưu điểm nhưng vẫn chưa thực sự hoàn chỉnh Một

số tính năng của Windows Form (chẳng hạn một số loại control và hộp

thoại) hiện vẫn chưa thể tìm thấy trong WPF Trong những trường hợp đó, sử dụng lại các thành phần của Windows Form cho ứng dụng WPF (thay vì phát triển lại WPF control từ đầu) có thể sẽ là một tùy chọn đáng cân nhắc

Từ những lý do trên, có thể thấy rằng Windows Form sẽ chưa biến mất ngay Thay vào đó, các ứng dụng Windows Form có sẵn sẽ được nâng cấp từ từ sang WPF Điều này làm nảy sinh nhu cầu kết hợp WPF và Windows Form trong cùng một chương trình Thật may, cả hai công nghệ này có thể sống chung một cách khá dễ dàng! Bài viết này sẽ trình bày một số phương pháp

để giải quyết vấn đề trên:

1 Đặt các WPF control và Windows Form control trong các cửa sổ riêng:Đây là hướng tiếp cận đơn giản nhất, trong đó mỗi cửa sổ sẽ chỉ chứa một loạicontrol (WPF control hoặc Windows Form control) Ta có thể thêm một cửa

sổ Windows Form vào một ứng dụng WPF tương tự như đối với một ứng dụng Windows Form thông thường bằng cách click chuột phải vào tên projecttrong solution explorer, chọn Add -> New Item, sau đó chọn Windows Form trong Windows Form category, đặt tên và click Add

Trang 10

Ngược lại, thêm một cửa sổ WPF vào một ứng dụng Windows Form hơi rắc rối hơn một chút vì Visual Studio không cung cấp tùy chọn này trong hộp thoại Add New Item Tuy nhiên, ta có thể import một cửa sổ WPF có sẵn trong một project khác bằng cách chọn Add -> Existing Item và add cả hai file xaml và cs của cửa sổ đó Với cách này, bạn sẽ phải tự add reference tới

ba assembly sau: PresentationCore.dll, PresentationFramework.dll và

WindowsBase.dll

Visual Studio sẽ cung cấp môi trường làm việc phù hợp (trình thiết kế,

intellisense…) cho mỗi loại cửa sổ Bạn có thể thiết kế và biên dịch chương trình một cách tự nhiên như trong bất kì ứng dụng WPF hoặc Windows Form nào Một lưu ý duy nhất là khi cần show một cửa sổ WPF ở dạng modeless từ trong một cửa sổ Windows Form (hoặc ngược lại), cần gọi phương thức EnableModelessKeyboardInterop (hoặc EnableWindowsFormInterop) để đảmbảo cửa sổ modeless có thể nhận keyboard input bình thường Ví dụ trong trường hợp cửa sổ modeless WPF:

MyWindow window = new MyWindow();

ElementHost.EnableModelessKeyboardInterop(window);

window.Show();

Bạn có thể sẽ cần add reference đến assembly WindowsFormIntegration.dll

để sử dụng lớp ElementHost

2 Đặt WPF control vào cửa sổ Windows Form:

Trong nhiều trường hợp chúng ta buộc phải sử dụng các WPF control và Windows Form control trong cùng một cửa sổ Lớp ElementHost cho phép đặt các WPF control trong cửa sổ Windows Form Chỉ cần tạo WPF control mong muốn và đặt nó vào trong ElementHost, sau đó thêm ElementHost vào tập các control của form

ElementHost host = new ElementHost();

Trang 11

3 Đặt Windows Form control vào cửa sổ WPF:

WPF cung cấp lớp WindowsFormHost có thể chứa một Windows Form control trong property Child Ta có thể sử dụng lớp này theo kiểu khai báo trong XAML hoặc bằng lập trình:

Trang 12

sinh sự kiện LayoutError, và cuối cùng sẽ gây

InvalidOperationException nếu không được xử lý

II.3 Ngôn ngữ WPF

3.1 Khởi tạo project mới

Để khởi tạo Project mới bạn vào menu: File -> New -> New Projecjt hoặccũng có thể dùng phím tắt Ctrl + Shift + N Sau đó sẽ xuất hiện hộp thoại bêndưới Tại List bên trái ta chọn ngôn ngữ C# -> Ứng dụng Windows Trong list

ở giữa ta chọn WPF Application để khởi tạo 1 project WPF mới Bạn có thểđổi tên và thư mục lưu trữ cho project tại Name và Location bên dưới Sau đó

OK để bắt đầu

Bước tiếp theo sẽ xuất hiện giao diện như hình bên dưới Ta thấy có một đốitượng MainWindow giữa màn hình, đây là Form chính trong chương trìnhchúng ta Như ta thấy dạng form này không có boder giống như dạng Form

Trang 13

thông thường trong ứng dụng C# Winform Application Việc lược bỏ bodercho thấy được rằng ứng dụng này hướng tới cả môi trường web, nếu bạn thựcthi ứng dụng thì không cần đến phần boder và ngoài việc loại bỏ boder cũngđem lại sự đơn giản hơn cho ứng dụng trên nền windows vì thực tế ta hầu nhưcũng không thao tác được gì trên boder này Một điểm khác nữa là form luônđược căn chỉnh giữa màn hình thay vì nằm góc trên bên trái như ứng dụngWinform thông thường.

3.2 Hộp thoại, những công cụ ta cần quan tâm đầu tiên:

Toobox: Nơi chưa các control cho ứng dụng của bạn Các control cũng tương tự như ứng dụng winform, ngoài ra còn được bổ sung một số control mới với những tính năng hay hơn, khả năng tùy biến cao hơn Chúng ta sẽ lần lượt tìm hiểu trong các lượt bài sau này Properties: Nơi thiết lập các thuộc tính cho control, thay đổi kích thước hình dạng, màu sắc… và thiết lập các event cho controls.

Solution Eplorer: Tại đây ta sẽ thấy được các thành phần, tài nguyên bên trong của project.

Một điểm mới thú vị của WPF là thanh trượt để zoom form lên kích thước lớn hơn, điều này giúp ta dễ dàng zoom lớn lên nhằm bố trí các control chính xác hơn, trường hợp kích thước form quá lớn ta có thể thu nhỏ để nhìn toàn thể form được bao quát hơn.

Bên dưới cho phép ta thay đổi giữa 2 chế độ làm việc: design – viết mã XAML Hoặc nếu trường hợp màn hình của bạn đủ lớn có thể chọn chế độ hiển thị cả 2 khung làm việc đồng thời.

Trang 14

Bên dưới là hình ảnh chi tiết của 3 Box công cụ: ToolBox, Solution Explorer

và Properties

Trang 15

3.3 Bắt đầu project đầu tiên:

Cũng như trong ứng dụng Winform bạn có thể thêm các control trực tiếp từToolbox thông qua các thao tác kéo thả Ngoài ra bạn có thêm thêm controlbằng cách viết mã trong XAML Đây là điểm mới và cũng là thế mạnh trongWPF Bạn có thể nhanh chóng tạo 1 control và thiết lập các thuộc tính mộtcách nhanh chóng bằng một số đoạn code ngắn gọn

Trong ví dụ bên dưới chúng ta tạo 1 button và 1 comboBox nằm trong button.Điều này khá lạ phải không? Trong ứng dụng Winform không cho phép tạocontrol lồng nhau như vậy, nhưng trong WPF bạn hoàn toàn có thể, không chỉthế mà còn rất nhiều điều thú vị đang chờ bạn khám phá

Trang 16

Biên dịch và chạy ứng dụng.

3.4 Giới thiệu về XAML

Trang 17

XAML được dùng để tạo giao diện đồ họa cho ứng dụng thông qua các đối tượng của Net hoặc do bạn tự định nghĩa Do đó mỗi thẻ XAML phải ánh xạ

và có tên tương ứng với một lớp

Giống như các ngôn ngữ đánh dấu HTML, XML cho phép các thẻ lồng nhau Điều này giúp bạn tạo ra các control đa dạng hơn, ví dụ như bạn có thể lồng một TextBox vào trong Button Bên cạnh đó, các giá trị có kiểu dữ liệu cơ bản như chuỗi, số, màu,… mà bạn gán cho các thuộc tính của thẻ cũng phải được đặt trong cặp nháy kép

Ví dụ với đoạn XAML đơn giản sau (MainWindow.xaml)

Title="Hello XAML" Height="250" Width="250">

Trang 18

Thay vì sử dụng XAML, bạn có thể dùng mã lệnh code-behind để thay thế

Để minh họa, bạn hãy tạo một C# Empty Project, sau đó Add reference các

thư viện Net cần thiết:

- PresentationCore

- PresentationFramework

- WindowsBase

- System.Xaml

Trang 19

Button button = new Button();

TextBox txt = new TextBox();

txt.Text = “I’m a TextBox”;

Trang 20

button.Content = txt;

Giao diện chương trình khi thực thi sẽ giống với ví dụ mà ta viết bằng XAML

trước đó kèm theo một cửa sổ console (bạn có thể vào Project > Project

Properties để chuyển Output typethành Windows Application).

Namespace trong XAML

Namespace mặc định

Các namespace trong XAML được khai báo qua thuộc tính

(attribute) xmlns (XML name space) Thuộc tính xmlns này cho phép sử

dụng nhiều lần trong tài liệu XAML, tuy nhiên mỗi thuộc tính này được phân biệt thông qua prefix mà bạn gán cho namespace mà nó khai báo

Namespace chứa các lớp mà bạn cần dùng đến trong ứng dụng Ngoài

namespace mặc định dùng cho những lớp cơ bản của WPF, bạn có thể thêm bất kì namespace nào khác bên trong hoặc ngoài assembly Hãy xem lại ví dụ trước:

Title="Hello XAML" Height="250" Width="250">

• Namespace đầu tiên

http://schemas.microsoft.com/winfx/2006/xaml/presentation” chứa các lớp cơ bản được sử dụng trong WPF Namespace được khai báo không kèm theo prefix và là namespace mặc định đối với tất cả các lớp

mà bạn sử dụng trong tập tin XAML hiện tại

• Namespace thứ hai “http://schemas.microsoft.com/winfx/2006/xaml”chứa các chức năng của XAML để bổ sung thuộc tính cho các đối tượng và chỉ ra cách bộ phân tích XAMLsẽ xử lý Namespace này được

ánh xạ vào prefix ‘x’ như một bí danh (alias), trong ví dụ bạn cũng có

thể thấy cách prefix được sử dụng:

Trang 21

Việc sử dụng bí danh này cũng tương tự như trong C#:

using Text = System.Text;

Những chức năng của namespace gán cho prefix x, bạn có thể tham khảo tại địa chỉ sau:

XAML Namespace (x:) Language Features

Bao gồm các phần để bạn có thể tham khảo nhanh:

x:Array Markup Extension

{} Escape Sequence / Markup Extension

xml:lang Handling in XAML

xml:space Handling in XAML

Bạn có thể thắc mắc là việc đặt hai namespace trên giống theo dạng địa chỉ URL có tác dụng gì? Một điều chắc chắn rằng các lớp, chức năng trong hai namespace mà ta sử dụng đều nằm trong máy cục bộ Namespace dạng URL này chỉ là một định danh và giúp gom tất cả các namespace cần thiết vào trong một namespace duy nhất

Thêm namespace vào tài liệu XAML

Trang 22

Để thêm các namespace khác vào tài liệu XAML, bạn cũng sử dụng thuộc tính xmlns kèm theo tên một prefix tự đặt Trình soạn thảo của Visual Studio

tự động xổ ra các namespace có hiệu lực, bao gồm các namespace do bạn tạo ra

Tên của các namespace này được khai báo bắt đầu bằng chuỗi prefix namespace” Nếu namespace không nằm trong assembly hiện tại, bạn phải chỉ

“clr-ra tên của assembly chứa nó trong tên của namespace Ví dụ sau khai báo một

namespace Microsoft.Win32 trong assembly mscorlib với alias là win32:

xmlns:win32=”clr-namespace:Microsoft.Win32;assembly=mscorlib”

Thuộc tính xmlns có thể được override bằng cách khai báo với alias trùng tên với alias của phần tử cha trong tài liệu XAML Ra ngoài phạm vi này, prefix

sẽ được trả lại để ánh xạ cho namespace ban đầu

Phần tử gốc của tài liệu XAML

Khi bạn tạo ra các đối tượng top-level (phần tử gốc) trong một tài liệu

XAML Chẳng hạn như Application, Window, Page hoặc subclass của các element tự tạo khác Bạn không thể sử dụng tên mới của subclass này

MainWindow để khai báo và tạo thể hiện của nó bởi vì namespace cần thiết chưa được khai báo Điều này là dĩ nhiên bởi vì namespace được khai báo bằng attribute bên trong đối tượng

Giải quyết cho vấn đề này, XAML sử dụng thuộc tính Class trong namespace

“http://schemas.microsoft.com/winfx/2006/xaml” (được gán cho x) để xác định lớp sẽ được tạo thể hiện thay cho lớp được dùng để khai báo

kế thừa từ Window Điều này giống như việc bạn tạo một subclass của lớp Window trong code-behind

Và như bạn có thể suy luận, thuộc tính x:Class này chỉ hỗ trợ cho phần tử level trong một tài liệu XAML

Ngày đăng: 02/11/2015, 17:15

TỪ KHÓA LIÊN QUAN

w