Windows Presentation Foundation (viết tắt là WPF) do Microsoft phát triển, là công nghệ kế tiếp Windows Form dùng để xây dựng các ứng dụng dành cho máy trạm chạy hệ điều hành Windows. WPF được giới thiệu từ năm 2006 trong.NET Framework 3.0 (dưới tên gọi Avalon), công nghệ này nhận được sự quan tâm của cộng đồng lập trình viên bởi nhiều điểm đổi mới trong lập trình ứng dụng và khả năng xây dựng giao diện thân thiện, sinh động. Tại Việt Nam, WPF thực sự chưa phát triển so với nhánh khác là Silverlight (WPF/E).
WPF sử dụng 2 thư viện lõi là PresentationCore và PresentationFramework để xử lý các điều hướng, ràng buộc dữ liệu, sự kiện và quản lý giao diện. WPF dựa trên nền tảng đồ họa là DirectX, xử lý vector, hỗ trợ gam màu rộng, cho phép tùy biến giá trị opacity hay tạo gradient một cách dễ dàng, cho phép tạo ảnh không gian 2 chiều hoặc 3 chiều. Thư viện thực thi của WPF tự động tính toán và tận dụng tài nguyên của hệ thống một cách tối ưu để giảm tải cho CPU.
Ngoài ra, WPF hỗ trợ tốt hơn Winform trong việc xử lý hình ảnh, âm thanh, video, quản lý phông chữ, quản lý hiển thị và chỉnh sửa văn bản. Các control trong WPF có thể được lồng ghép linh động để tạo ra giao diện do được viết bằng XAML. Một ứng dụng WPF có thể được xây dựng để chạy độc lập dưới dạng mở rộng EXE hoặc đóng gói với phần mở rộng là XBAP để có thể tích hợp lên website.
Thư viện thực thi WPF được tích hợp trong tất cả các hệ điều hành kể từ Windows Vista và Windows Server 2008.
Cho đến thời điểm hiện tại, WPF có 5 phiên bản: WPF 3.0 (11-2006), WPF 3.5 (11-2007), WPF 3.5sp1 (8-2008), WPF 4 (4-2010), và WPF 4.5 (8-2012).
Đồ họa và giao diện dựa trên Direct3D cho phép hiển thị các xử lý điểm - ảnh phức tạp hơnGDI's. Công nghệ này cho phép chia sẻ tác vụ xử lý cho GPU và giảm tải CPU.
Data binding là điểm nổi bật của WPF trong việc liên kết dữ liệu của ứng dụng. Tùy theo mục đích của chương trình, lập trình viên có thể xử lý liên kết theo ba loại:
WPF cho phép xây dựng chương trình với sự hỗ trợ vector, xử lý hình ảnh, âm thanh, video, đồ họa 2D, 3D.
Dữ liệu trong WPF có thể được định nghĩa để hiển thị theo yêu cầu thông qua các thuộc tính (properties) và việc định nghĩa template, style cho các control.
WPF hỗ trợ hiệu ứng dựa trên thời gian thực thi của chương trình, thay vì frame-based. Các hiệu ứng đơn giản có thể xử lý bằng việc quản lý thời gian chạy, còn các xử lý phức tạp hơn cần đến sự hỗ trợ của lớp Animation.
Các hiệu ứng có thể được gom nhóm vào Storyboards và gán cho đối tượng và lớp này điều khiển việc bắt đầu hoặc dừng các hiệu ứng thông qua các phương thức tương ứng (Start, Stop, Pause...). Hiệu ứng cho ứng dụng có thể được viết trên giao diện bằng XAML hoặc định nghĩa bằng C#.
Hỗ trợ triển khai dưới dạng chạy độc lập trên máy trạm hoặc nhúng vào website.