Что такое windows presentation foundation wpf

Особенности платформы WPF

Последнее обновление: 26.11.2023

Технология WPF (Windows Presentation Foundation) является часть экосистемы платформы .NET и представляет собой подсистему для построения графических интерфейсов.

Если при создании традиционных приложений на основе WinForms за отрисовку элементов управления и графики отвечали такие части ОС Windows, как User32 и GDI+,
то приложения WPF основаны на DirectX. В этом состоит ключевая особенность рендеринга графики в WPF: используя WPF,
значительная часть работы по отрисовке графики, как простейших кнопочек, так и сложных 3D-моделей, ложиться на графический процессор на видеокарте,
что также позволяет воспользоваться аппаратным ускорением графики.

Одной из важных особенностей является использование языка декларативной разметки интерфейса XAML, основанного на XML: вы можете создавать насыщенный
графический интерфейс, используя или декларативное объявление интерфейса, или код на управляемых языках C#, VB.NET и F#, либо совмещать и то, и другое.

Первая версия — WPF 3.0 вышла вместе с .NET Framework 3.0 и операционной системой
Windows Vista в 2006 году. И с тех пор платформа WPF является частью экосистемы .NET и развивается вместе с фреймворком .NET. Например, на сегодняшний день последней версией фреймворка
.NET является .NET 8, и WPF полностью поддерживается этой версией фреймворка.

Преимущества WPF

Что вам, как разработчику, предлагает WPF?

  • Использование традиционных языков .NET-платформы — C#, F# и VB.NET для создания логики приложения

  • Возможность декларативного определения графического интерфейса с помощью специального языка разметки XAML, основанном на xml и представляющем
    альтернативу программному созданию графики и элементов управления, а также возможность комбинировать XAML и C#/VB.NET

  • Независимость от разрешения экрана: поскольку в WPF все элементы измеряются в независимых от устройства единицах, приложения на WPF легко масштабируются под разные экраны с разным разрешением.

  • Новые возможности, которых сложно было достичь в WinForms, например, создание трехмерных моделей, привязка данных, использование таких элементов, как стили, шаблоны, темы и др.

  • Хорошее взаимодействие с WinForms, благодаря чему, например, в приложениях WPF можно использовать традиционные элементы управления из WinForms.

  • Богатые возможности по созданию различных приложений: это и мультимедиа, и двухмерная и трехмерная графика, и богатый набор встроенных
    элементов управления, а также возможность самим создавать новые элементы, создание анимаций, привязка данных, стили, шаблоны, темы и многое другое

  • Аппаратное ускорение графики — вне зависимости от того, работаете ли вы с 2D или 3D, графикой или текстом, все компоненты приложения
    транслируются в объекты, понятные Direct3D, и затем визуализируются с помощью процессора на видеокарте, что повышает производительность, делает графику более плавной.

  • Создание приложений под множество ОС семейства Windows

В тоже время WPF имеет определенные ограничения. Несмотря на поддержку трехмерной визуализации, для создания приложений с большим количеством трехмерных изображений, прежде всего игр, лучше использовать другие средства — DirectX
или специальные фреймворки, такие как Monogame или Unity.

Также стоит учитывать, что по сравнению с приложениями на Windows Forms объем программ на WPF и потребление ими памяти в процессе работы в среднем несколько выше. Но это с лихвой компенсируется
более широкими графическими возможностями и повышенной производительностью при отрисовке графики.

Кроме того, несмотря на то, что WPF работает поверх кроссплатформенной среды .NET, но в силу природы WPF и зависимости от компонентов Windows, на данный момент
создавать приложения на WPF можно только под ОС Windows.

Архитектура WPF

Схематически архитектуру WPF можно представить следующим образом:

Архитектура WPF

Как видно на схеме, WPF разбивается на два уровня: managed API и unmanaged API (уровень интеграции с DirectX).
Managed API (управляемый API-интерфейс) содержит код, исполняемый под управлением общеязыковой среды выполнения .NET — Common Language Runtime.
Этот API описывает основной функционал платформы WPF и состоит из следующих компонентов:

  • PresentationFramework.dll: содержит все основные реализации компонентов и элементов управления, которые можно использовать при
    построении графического интерфейса

  • PresentationCore.dll: содержит все базовые типы для большинства классов из PresentationFramework.dll

  • WindowsBase.dll: содержит ряд вспомогательных классов, которые применяются в WPF, но могут также использоваться и вне данной платформы

Unmanaged API используется для интеграции вышележащего уровня с DirectX:

  • milcore.dll: собственно обеспечивает интеграцию компонентов WPF с DirectX. Данный компонент написан на неуправляемом коде
    (С/С++) для взаимодействия с DirectX.

  • WindowsCodecs.dll: библиотека, которая предоставляет низкоуровневую поддержку для изображений в WPF

Еще ниже собственно находятся компоненты операционной системы и DirectX, которые произвоят визуализацию компонентов приложения, либо выполняют прочую низкоуровневую обработку.
В частности, с помощью низкоуровневого интерфейса Direct3D, который входит в состав DirectX, происходит трансляция

Здесь также на одном уровне находится библиотека user32.dll. И хотя выше говорилось, что WPF не использует эту библиотеку
для рендеринга и визуализации, однако для ряда вычислительных задач (не включающих визуализацию) данная библиотека продолжает использоваться.

Last Updated :
02 Aug, 2022

Windows Presentation Foundation(WPF) is a development framework used to create a desktop application. It is a part of the .NET framework. The WPF has a resolution-independent and vector-based rendering engine which is helpful to deal with modern graphics hardware. The latest version of WPF is 4.6. In this framework, UI of the application is designed in XAML language and Application logic is Written in C# programming language.

Features of WPF are as following:

  • Extensible Application Markup Language (XAML)
  • Controls
  • Data Binding
  • Layout
  • 2D and 3D graphics
  • Animation
  • Styles
  • Templates
  • Documents
  • Media
  • Text
  • Typography

WPF Architecture: The major components of the WPF are PresentationFramework, PresentationCore, Milcore, Common Language Runtime(CLR), User32, Kernel. Milcore is written in unmanaged code in order to enable tight integration with DirectX, which is responsible for display. WPF has fine control over memory and execution. The composition engine in milcore is extremely performance-sensitive and required giving up many advantages of the Common Language Runtime to gain performance.

Creating a WPF Application Using Visual Studio 2019

Step 1: Open Visual Studio and select Create a new project under the Get started menu. The Create a new project dialog opens. Select the WPF App (.NET Framework) template and then select Next.

Create a new peoject dialog box

Step 2: The Configure your new project dialog opens. Enter the project name IntroductionToWPFApplication and then select Create.

Configure your new project dialog box

Visual Studio creates the project and opens the designer for the default application window named MainWindow.xaml.

MainWindow.xaml

  • Solution Explorer Window: It is used to navigate between all files in Project. For example, if you will select a file from this window then all the properties related to this file will be seen property window.
  • Properties Window: This window is used to change the different properties of the selected item in the Solution Explorer. Also, you can change the properties of components or controls that you will add to the App.
  • Compiler Log: This window displays the error and warning messages.
  • Xaml Code Editor: In this window we can write the xaml code for UI of App.
  • Preview Window: We can see the preview of the window how the window will look like.
  • You can also reset the window layout by setting it to default. To set the default layout, go to Window -> Reset Window Layout in Visual Studio Menu.

    Step 3: Now to add the controls to your WPF application go to Toolbox tab present in the extreme left side of Visual Studio. Here, you can see a list of controls. To access the most commonly used controls go to Common Controls present in the Toolbox tab.

    Toolbox Menu

    Step 4: Now drag and drop the controls that you needed on created Form. For example, if you can add TextBox, ListBox, Button, etc. as shown below. By clicking on the particular control in the preview window you can see and change its properties present in the rightmost corner of Visual Studio.

    ToolBox Demo

    In the above image, you can see the TextBox is selected and its properties are opened in the rightmost corner. You can change its properties’ values as per the application need. The code of controls will be automatically added in the XAML code editor.

    Step 5: To run the program you can use an F5 key or Play button present in the toolbar of Visual Studio. To stop the program you can use the pause button present in the ToolBar. You can also run the program by going to Debug-> Start Debugging menu in the menubar.

    Running Application Demo

    If you worked with Windows Forms previously then it will be very easy to work with WPF.

    Advantages of WPF:

    • It uses current standard because it is newer
    • the developers of the controls will likely be more focused on WPF because it’s XAML makes it easy to create and edit your UI and allows the development work to be separated between a designer (XAML) and a programmer(C#).
    • Databinding is used to make a clean separation between data and layout.
    • Uses hardware efficiently for drawing the UI, for better performance.
    • It is used to make user interfaces for both Windows applications and web applications.

Windows Presentation Foundation (WPF)

Windows Presentation Foundation (WPF) is a UI framework for building Windows desktop applications.

WPF supports a broad set of application development features, including an application model, resources, controls, graphics, layout, data binding and documents. WPF uses the Extensible Application Markup Language (XAML) to provide a declarative model for application programming.

WPF’s rendering is vector-based, which enables applications to look great on high DPI monitors, as they can be infinitely scaled. WPF also includes a flexible hosting model, which makes it straightforward to host a video in a button, for example.

Visual Studio’s designer, as well as Visual Studio Blend, make it easy to build WPF applications, with drag-and-drop and/or direct editing of XAML markup.

As of .NET 6.0, WPF supports ARM64.

See the WPF Roadmap to learn about project priorities, status and ship dates.

WinForms is another UI framework for building Windows desktop applications that is supported on .NET (7.0.x/6.0.x). WPF and WinForms applications only run on Windows. They are part of the Microsoft.NET.Sdk.WindowsDesktop SDK. You are recommended to use the most recent version of Visual Studio to develop WPF and WinForms applications for .NET.

To build the WPF repo and contribute features and fixes for .NET 8.0, Visual Studio 2022 Preview is required.

Getting started

  • .NET 6.0 SDK, .NET 7.0 SDK
  • .NET Preview SDKs (8.0 daily, 7.0 servicing)
  • Getting started instructions
  • Contributing guide
  • Migrating .NET Framework WPF Apps to .NET Core

Status

  • We are currently developing WPF for .NET 8.

See the WPF roadmap to learn about the schedule for specific WPF components.

Test published at separate repo Tests and have limited coverage at this time. We will add more tests, however, it will be a progressive process.

The Visual Studio WPF designer is now available as part of Visual Studio 2019.

How to Engage, Contribute and Provide Feedback

Some of the best ways to contribute are to try things out, file bugs, join in design conversations, and fix issues.

  • This repo defines contributing guidelines and also follows the more general .NET Core contributing guide.
  • If you have a question or have found a bug, file an issue.
  • Use daily builds if you want to contribute and stay up to date with the team.

.NET Framework issues

Issues with .NET Framework, including WPF, should be filed on VS developer community,
or Product Support.
They should not be filed on this repo.

Relationship to .NET Framework

This code base is a fork of the WPF code in the .NET Framework. .NET Core 3.0 was released with a goal of WPF having parity with the .NET Framework version. Over time, the two implementations may diverge.

The Update on .NET Core 3.0 and .NET Framework 4.8 provides a good description of the forward-looking differences between .NET Core and .NET Framework.

This update states how going forward .NET Core is the future of .NET. and .NET Framework 4.8 will be the last major version of .NET Framework.

Code of Conduct

This project uses the .NET Foundation Code of Conduct to define expected conduct in our community. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project maintainer at conduct@dotnetfoundation.org.

Reporting security issues and security bugs

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.

Also see info about related Microsoft .NET Core and ASP.NET Core Bug Bounty Program.

License

.NET Core (including the WPF repo) is licensed under the MIT license.

.NET Foundation

.NET Core WPF is a .NET Foundation project.

See the .NET home repo to find other .NET-related projects.

Содержание

  • Платформы построения графического интерфейса в Windows
  • Преимущества WPF
    • Широкая интеграция
    • Независимость от разрешения экрана
    • Аппаратное ускорение
    • Декларативное программирование
    • Богатые возможности композиции и настройки

Windows Presentation Foundation (или сокращенно — WPF) — это платформа для построения пользовательского интерфейса, не зависящая от разрешения и использующая векторный механизм визуализации, способный использовать все преимущества современного графического оборудования. Так, если при разработке графического приложения с использованием WinForms преимущественно используются  GDI/GDI+, то WPF использует DirectX.

На момент написания этого руководства, создание графического интерфейса приложений для Windows может осуществляться с использованием сразу нескольких платформ:

1. Windows Forms. На данный момент эта платформа представлена двумя реализациями: с открытым исходным кодом, которая выполняется в .NET и версия для .NET Framework (ныне считающейся устаревшей платформой). Эта платформа в полной мере использует концепцию RAD (от англ. rapid application development — быстрая разработка приложений). Ключевая особенность этой платформы — наличие конструктора форм. То есть Вы просто перетаскиваете на форму необходимые элементы, позиционируете их, настраиваете свойства, используя удобные редакторы и графический интерфейс приложения готов. Вот, например, как выглядит конструктор формы в Visual Studio 2022:

Безусловным преимуществом Windows Forms является скорость разработки. Наличие достаточно большого количества готовых к использованию компонентов позволяет достаточно быстро «накидать» интерфейс приложения, а затем создать всю необходимую логику работу приложения используя обработчики событий компонентов.

2. WPF (Windows Presentation Foundation) — относительно старая и проверенная временем платформа, использующая для построения графического интерфейса приложения декларативный язык разметки XAML. Именно об этой платформе пойдет речь далее.

3. WinUI — платформа для разработки приложений для Windows, которая также использует XAML для построения графического интерфейса. Корпорация Microsoft позиционирует эту платформу как следующий шаг в направлении разработки графических интерфейсов приложений Windows. Приложения, построенные с использованием WinUI используют Fluent Design по умолчанию.

4. Blazor Hybrid — изначально, фреймворк Blazor разрабатывался с целью создания веб-приложений с богатым графическим интерфейсом. Однако, Blazor Hybrid позволяет создавать кроссплатформенные приложения для Windows, MacOS, iOS и Android, используя для построения графического интерфейса Razor — это специальный язык разметки, позволяющие использовать инструкции и блоки кода C# внутри html-разметки. Появление Blazor Hybrid стало возможным, благодаря выходу другой платформы — платформы .NET MAUI.

5. NET Multi-platform App UI или сокращенно .NET MAUI — это кроссплатформенный фреймворк для создания мобильных и классических приложений с помощью C# и XAML для операционных систем Windows, Android, iOS и MacOS, позволяющий использовать при создании приложений единую кодовую базу.

Как видите, для разработки приложений Windows с графическим интерфейсом мы можем использовать сразу пять различных платформ и три из них используют для построения графического интерфейса декларативный язык разметки XAML.

В этом руководстве мы сосредоточимся на изучении WPF (Windows Presentation Foundation) как наиболее устоявшейся и надежной платформы, которая поддерживается и будет поддерживаться далее, несмотря на наличие WinUI и .NET MAUI.

Преимущества WPF

Широкая интеграция

До появления WPF разработчикам в Windows, которые хотели использовать одновременно ЗD-графику, видео, речевые технологии, работу с документами и так далее могло понадобиться изучать несколько независимых технологий, которые могли быть, к тому же, плохо совместимы между собой. В WPF все это входит в состав согласованной модели программирования, поддерживающей композицию и визуализацию разнородных элементов. Одни и те же эффекты применимы к различным видам мультимедийной информации, а один раз освоенная техника может использоваться и для других целей.

Независимость от разрешения экрана

Благодаря использованию векторной графики, WPF обеспечивает и дает возможность уменьшать или увеличивать элементы на экране независимо от его разрешения.

Аппаратное ускорение

Поскольку в основе WPF лежит использование технологии DirectX, то содержимое в WPF-приложении, будь то кнопка, изображение или текст, преобразуется объекты Direct3D, а затем отрисовываются, используя графический процессор видеокарты . Таким образом, WPF-приложения задействуют все возможности аппаратного ускорения графики, что позволяет добиться более качественного изображения и одновременно повысить производительность (поскольку часть работы перекладывается с центральных процессоров на графические).

При этом, WPF не требует обязательного наличия высокопроизводительной видеокарты. В ней имеется и собственный программный конвейер визуализации. Это позволяет использовать возможности, которые пока еще не поддерживаются аппаратно (например, осуществлять высокоточное отображение любого содержимого на экране). Программная реализация используется и как запасной вариант в случае отсутствия аппаратных ресурсов (например, если в системе стоит устаревшая графическая карта, или карта современная, но GPU не хватает ресурсов, скажем, видеопамяти).

Декларативное программирование

Хотя декларативное программирование не является уникальной особенностью WPF, в WPF применение декларативного программирования вышло на новый уровень благодаря языку XAML (extensible Application Markup Language — расширяемый язык разметки приложений). Сочетание WPF и XAML можно сравнить с использованием HTML для описания пользовательского интерфейса, но с гораздо более широкими выразительными возможностями. И эта выразительность выходит далеко за рамки описания интерфейса.

В WPF язык XAML, в основном, применяется в качестве описания интерфейса приложения. Использование XAML, с одной стороны, может стать небольшим препятствием для изучения и работы с WPF, особенно, если до этого вы долгое время использовали WinForms. Однако, с другой стороны, благодаря такому подходу, мы можем полностью отделить интерфейс приложения от логики — дизайнеры «рисуют» красивый привлекательный интерфейс приложения, не задумываясь о бизнес-логике, программисты — пишут бизнес-логику.

Богатые возможности композиции и настройки

В WPF элементы управления могут сочетаться самыми немыслимыми и причудливыми способами. Например, можно создать комбинированный список, содержащий анимированные кнопки, или добавить в кнопку рисунок и так далее.  Раньше, для таких «чудес» нам бы пришлось писать довольно много кода, в WPF — это делается достаточно просто и, в некотором роде, даже интуитивно понятно. Кроме того, стоит отметить, что в WPF можно без особого труда изменить тему оформления (скин, обложку) приложения.

Итого

По сравнению с WinForms, WPF обладает рядом преимуществ, главные из которых — это использование аппаратного ускорения и независимость от разрешения экрана. При этом, если вы переходите на работу с WPF всё с той же WinForms или вообще из другого языка программирования, например, Delphi, то, в начале, эта платформа может показаться достаточно сложной. В основном, благодаря тому, что в WPF используется XAML и то, что ранее решалось простым перетаскиванием элементов управления из тулбокса на форму и написанием обработчиков событий, теперь придётся делать более «цивилизованным» способом, отделяя графику от бизнес-логики. Хотя, справедливости ради, стоит отметить, что и для WPF можно использовать достаточно большое количество стандартных элементов управления, доступных в ToolBox, но это уже другая история и об этом мы поговорим в дальнейшем, по мере углубления в тему WPF C#.

        Года 3 назад, обсуждая Windows Forms с другом, я жаловался на то что неудобно использовать Windows Forms для вывода видео и музыки, а друг о том, что ему неудобно создавать свои контролы, а также формировать тулбары.

        Мы и не думали тогда, что нам так упростят жизнь.
Но у любой технологии есть свои плюсы и минусы. Мы платим за нее своим временем, своими проектами, когда года 1.5 назад я выпустил простейшее приложение для обновления одной игры (такого рода программы зачастую называют «Автопатчеры»), я и не думал о том, что не может быть столько людей, которые будут кричать не о том, что программа имеет плохой дизайн или баги, а то, что ведь нужно скачать 20 мегабайт .Net Framework 2.0.

        Жизнь научила меня изучать теперь сначала рынок, ведь даже самое красивое и правильное приложение может быть не оценено, если пользователю нужно совершать телодвижения, которые могут вызвать у него от сведения руки от нажатий кучи ненужных кнопок в диалогах программ до того, что ему нужно потратить дополнительный пенни для запуска вашей программы.

        Год назад я много слышал о различных технологиях, появившихся в Net Framework 3.0. Я уже начал писать ранее на C#/VB.Net в контексте ASP.Net и почитав отзывы наиболее рьяных архитекторов, решил подождать.

        Спустя полгода, а точнее прошлой весной, я слушал великолепные отзывы о технологии WPF от своего товарища, у него была одна проблема: 80% возможностей он так и не смог раскрыть, т.к. нормальная книга появилась летом (из тех, где подробно и довольно в доступной форме рассказывается о технологии), а до этого можно было почерпнуть информацию только из блогов, в коих, зачастую, многое упускалось из вида…

        Наслушавшись его, и умудрившись опыта, я сначала начал читать книгу, которая обновилась к этому времени, вместе с фреймворком до версии 3.5. Многое ускользало и пока продолжает ускользать от моего понимания, но теперь есть куда копать: западные блоггеры-программисты, раскусив плод WPF, застрочили как из пулемета, да и наши начинают догонять.

Что такое WPF?

        В Windows с версии 3.11 присутствовал компонент вывода на экран GDI, позже его обновили, в Windows XP, если не ошибаюсь, уже используется GDI+.
Проблем от использования GDI+ в приложениях было и будет много, наряду с GDI была подсистема вывода 3D – DirectX, существовавшая с Windows 95. У нее были другие проблемы, но главной проблемы – сильной загрузки процессора для перерисовки моделей у нее не было.

        Видимо решение у Microsoft зрело давно, раз они интегрировали WPF в Vista и Server 2008, которое, как мне кажется, и дало больший толчок для его использования, нежели всяческие семинары и статьи. Это, кстати дает дополнительный плюс, ведь упрощается модель редистрибуция приложений использующих 3 и 3.5 фреймворки.

        Собственно, как я думаю, Вы уже догадались, WPF использует DirectX для вывода приложений на экран пользователя. Но тут и первые грабли, т.к. отображение форм у пользователей будет местами разниться, ведь мы, же не сговорились и не скупили продукцию 3D middle и high видеокарт.

        В WPF, на данный момент существуют 3 уровня, для определения как будет «рендерится» формочка и остальные примитивы на экране.

a) Уровень 0: Нет hardware acceleration (внутреннего ускорения). Примерно DirectX 7.0
b) Уровень 1: Частичная hardware acceleration. Примерно DirectX 8.
c) Уровень 2: Все фичи задействованы. Примерно DirectX 9 и выше.

Как узнать какой у вас уровень или у пользователя?

Int renderingTier = (RenderCapability.Tier >> 16);
if (renderingTier == 0)
{
 // 0 уровень
}

        Однако разработчики не ограничились тем, что использовали другой уровень презентационной модели, а сделали еще много вещей:

a) Новая описательная модель формы и интерфейса в принципе — XAML
b) Новая модель Компоновки: имеется ввиду не компоновщик на уровне компилятора,
а новая модель включения одного в другое. Пример (в textbox вставить checkbox).
c) Новые сопутствующие контролы и методы для печати и медиа.
d) Новая модель привязки данных.
e) Новые возможности в формах.
f) Многое другое, что я еще не узнал.
g) Возможность почти безболезненно перенести проект в Web
(О XBAP Rich Web Application я расскажу, через пару статей).
h) Анимация.

        Да называть все везде формами, наверное, неверно, ведь модель состоит из окон и страниц, страницы можно соответственно подгружать, что в веб-версии, что в обычной, через компонент Frame или через Canvas, например, в WPF/E (SilverLight).

Пример подгрузки страницы:

Frame.Source = new Uri («Page1.xaml», UriKind.Relative);

        В следующей статье я рассмотрю XAML. Вкратце пока скажу, что XAML
(eXtensible Application Markup Language) – это специальный описательный язык для
документов, окон и страниц, чем то, напоминает этакую помесь XML и HTML.

Ну и простой пример окна (только XAML):

  1. <Window
  2.   xmlns=»http://schemas.microsoft.com/winfx/2006/xaml/presentation»
  3.   xmlns:x=»http://schemas.microsoft.com/winfx/2006/xaml»
  4.   Title=»TestingWPF» Width=»310″ Height=»260″
  5.   WindowStartupLocation=»CenterScreen»>
  6.  
  7. <Grid>
  8.   <Grid.ColumnDefinitions>
  9.     <ColumnDefinition></ColumnDefinition>
  10.   </Grid.ColumnDefinitions>
  11.  
  12.   <Grid.RowDefinitions>
  13.     <RowDefinition></RowDefinition>
  14.   </Grid.RowDefinitions>
  15.  
  16.   <TextBlock Grid.Row=»0″ Grid.Column=»0″>Hello World</TextBlock>
  17. </Grid>
  18. </Window>

* This source code was highlighted with Source Code Highlighter.

        Кстати, советую для тестирования разметки и небольших кусочков использовать не Visual Studio, а XamlPadX или XamlHack, или XamlPad.

В заключение, хотелось бы порекомендовать книги по WPF:

1) WPF. Windows Presentation Foundation в .NET 3.5 с примерами на C# 2008 для профессионалов
Автор: Мэтью Мак-Дональд.

Впечатления:

        Написано очень добротно, неточностей перевода мало, рассказано почти обо всем, минус – то, что маленький тираж, и когда она только появилась, пришлось побегать и месяца полтора ждать.

2) WPF. Windows Presentation Foundation в .NET 3.0 для профессионалов.
Автор: тот же.

Впечатления:

        «В целом книга написана очень хорошо, но, похоже, все-таки, местами слишком все подробно расписано и присутствуют неточности перевода» – это со слов человека (который упоминался в повествовании ранее), который ее читал.

Upd.

Блоги

Вот немного блогов, посвящённых WPF:

blogs.msdn.com/adam_nathan/
www.drwpf.com/blog — один из лучших WPF-блоггеров
www.beacosta.com/blog — всё о Data Binding в WPF
marlongrech.wordpress.com/
joshsmithonwpf.wordpress.com/ — один из лучших WPF-блоггеров
work.j832.com/
learnwpf.com/
blog.pixelingene.com/
sachabarber.net/ — один из лучших WPF-блоггеров
blogs.msdn.com/wpfsdk/
windowsclient.net/
www.codeplex.com/wpf/ — новые официальные контролы WPF
wpf.netfx3.com/blogs/presentation_bloggers/

Английские книги

Pro WPF: Windows Presentation Foundation in .NET 3.0 by Matthew MacDonald
Essential Windows Presentation Foundation by Chris Andersen
WPF Unleashed by Adam Nathan

Дополнительные программы, для работы с WPF

Kaxaml

(Спасибо хаброюзеру Vladek за помощь в дополнении поста и хаброюзеру XaocCPS за его рецензирование)

Буду рад, если Вы дополните этот список, особенно книгами на английском,
т.к я пока еще их не изучал, но видел, либо сделаете уточнения к статье. Спасибо!

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Ошибка 0x0000001e в windows 7 как исправить
  • Как подключить dns сервер на компьютере windows 10
  • Rutoken ru support download drivers for windows
  • Продолжение невозможно windows не допускает продолжение выполнения после данного исключения
  • 12 вещей которые нужно сделать после установки windows 10