
- •Программирование с использованием wpf
- •Разметка
- •Код программной части
- •Класс приложения
- •Безопасность
- •Элементы управления wpf по функциям
- •Двухмерные формы
- •Двухмерная геометрия
- •Документы нефиксированного формата
- •Документы фиксированного формата
- •Документы xps
- •Заметки
- •Модель содержимого
- •Шаблоны данных
- •Ресурсы
- •Темы и обложки
- •Пользовательские элементы управления
- •Разделы общих сведений
- •Примеры
Темы и обложки
С точки зрения визуального восприятия тема определяет глобальный внешний вид системы Windows и приложений, которые в ней запускаются. Windows поставляется с несколькими темами. Например, Microsoft Windows XP поставляется с темами Windows XP и Windows Classic, а Windows Vista поставляется с темами Windows Vista и Windows Classic. Внешний вид, определяемый темой, задает внешний вид по умолчанию для приложения WPF. Однако WPF не поддерживает прямую интеграцию с темами Windows. Поскольку внешний вид WPF определяется шаблонами, WPF включает по одному шаблону для каждой известной темы Windows, в том числе Aero (Windows Vista), Classic (Microsoft Windows 2000), Luna (Microsoft Windows XP) и Royale (Microsoft Windows XP Media Center Edition 2005). Эти темы упакованы в словари ресурсов, которые применяются, если ресурсы не найдены в приложении. Внешний вид многих приложений задается с помощью этих тем; сохраняющаяся согласованность с внешним видом Windows помогает пользователям быстрее освоиться с большинством приложений.
С другой стороны, опыт работы пользователя с некоторыми приложениями не обязательно связан с стандартными темами. Например, Проигрыватель Windows Media (Microsoft) работает с аудио- и видеоданными, и здесь преимущество имеют пользователи с опытом работы в другом стиле. Такие Пользовательские интерфейсы чаще предоставляют настраиваемые, специфичные для приложения темы. Такие темы называются "обложки", и приложения, которые их используют, часто предоставляют средства настройки различных аспектов обложек. Проигрыватель Windows Media (Microsoft) имеет множество собственных обложек и обложек от сторонних производителей.
Темы и обложки в WPF наиболее просто задаются с помощью словарей ресурсов. В следующем примере показан процесс задания обложки.
XAML
Копировать
<!-- Blue Skin -->
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SDKSample">
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Blue" />
</Style>
...
</ResourceDictionary>
XAML
Копировать
<!-- Yellow Skin -->
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SDKSample">
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Yellow" />
</Style>
...
</ResourceDictionary>
Дополнительные сведения см. в разделе "Совместно используемые ресурсы и темы", в подразделе Стилизация и использование шаблонов.
Пользовательские элементы управления
Хотя WPF и обеспечивает поддержку настройки, могут возникнуть ситуации, в которых существующие элементы управления WPF не удовлетворяют требованиям приложения или его пользователей. Это возможно в следующих ситуациях:
-
Нужный Пользовательский интерфейс не может быть создан путем настройки внешнего вида и поведения существующих реализаций WPF.
-
Нужное поведение не поддерживается (или поддерживается частично) существующими реализациями WPF.
Тем не менее, в этом случае можно воспользоваться одной из трех моделей WPF для создания нового элемента управления. Каждая модель предназначена для определенного скрипта и требует, чтобы пользовательский элемент управления был производным от конкретного базового класса WPF. Далее приводится описание этих трех моделей.
-
Модель пользовательского элемента управления. Пользовательский элемент управления производится из UserControl и состоит из одного или нескольких других элементов управления.
-
Модель элемента управления. Пользовательский элемент управления производится из Control и используется для построения реализаций, в которых внешний вид и поведение разделены с помощью шаблонов, подобно большей части элементов управления WPF. Создание элемента управления, производного от Control, предоставляет по сравнению с пользовательскими элементами управления большую свободу для создания нестандартного Пользовательский интерфейс, но может потребовать дополнительных усилий.
-
Модель элемента .NET Framework. Пользовательский элемент управления производится от FrameworkElement, когда его внешний вид определяется пользовательской логикой отрисовки (не шаблонами).
В следующем примере показано создание пользовательского элемента управления "numeric up/down", производного от UserControl.
XAML
Копировать
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SDKSample.NumericUpDown">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<!-- Value text box -->
<Border BorderThickness="1" BorderBrush="Gray" Margin="2" Grid.RowSpan="2"
VerticalAlignment="Center" HorizontalAlignment="Stretch">
<TextBlock Name="valueText" Width="60" TextAlignment="Right" Padding="5"/>
</Border>
<!-- Up/Down buttons -->
<RepeatButton Name="upButton" Click="upButton_Click" Grid.Column="1"
Grid.Row="0">Up</RepeatButton>
<RepeatButton Name="downButton" Click="downButton_Click" Grid.Column="1"
Grid.Row="1">Down</RepeatButton>
</Grid>
</UserControl>
VB
Копировать
imports System 'EventArgs
imports System.Windows 'DependencyObject, DependencyPropertyChangedEventArgs,
' FrameworkPropertyMetadata, PropertyChangedCallback,
' RoutedPropertyChangedEventArgs
imports System.Windows.Controls 'UserControl
Namespace SDKSample
' Interaction logic for NumericUpDown.xaml
Partial Public Class NumericUpDown
Inherits System.Windows.Controls.UserControl
'NumericUpDown user control implementation
...
End Class
End Namespace
C#
Копировать
using System; // EventArgs
using System.Windows; // DependencyObject, DependencyPropertyChangedEventArgs,
// FrameworkPropertyMetadata, PropertyChangedCallback,
// RoutedPropertyChangedEventArgs
using System.Windows.Controls; // UserControl
namespace SDKSample
{
public partial class NumericUpDown : UserControl
{
// NumericUpDown user control implementation
...
}
}
В следующем примере показан XAML, необходимый для включения пользовательского элемента управления в окно Window.
XAML
Копировать
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SDKSample.UserControlWindow"
xmlns:local="clr-namespace:SDKSample"
Title="User Control Window">
...
<!-- Numeric Up/Down user control -->
<local:NumericUpDown />
...
</Window>
На следующем рисунке показан элемент управления NumericUpDown, размещенный в окне Window.
Дополнительные сведения о пользовательских элементах управления см. в разделе Общие сведения о разработке управления.
Советы и рекомендации по WPF
Как любая платформа разработки, WPF может использоваться множеством способов для достижения нужного результата. Для гарантий, что приложения WPF предоставляют требуемое взаимодействие с пользователем и удовлетворяют требованиям аудитории в целом, в данном разделе предлагаются советы и рекомендации по специальным возможностям, глобализации и локализации, а также производительности. Дополнительную информацию см. в следующих разделах:
-
Рекомендации по специальным возможностям
-
Общие сведения о глобализации и локализации WPF
-
Улучшение производительности приложений WPF
-
Безопасность (WPF)
Сводка
WPF ― это исчерпывающая технология презентации для построения разнообразных, визуально привлекательных клиентских приложений. Это введение предоставляет обзор основных возможностей WPF.
Следующим шагом является построение приложений WPF!
Как только приложения будут построены, можно будет вернуться назад к этому введению, чтобы освежить в памяти основные возможности и найти ссылки на более подробное их рассмотрение.
Рекомендуемые обзоры и примеры
В этом введении упоминаются следующие обзоры и примеры: