Пошаговое руководство. Применение стилей к содержимому Windows Presentation Foundation
Обновлен: Ноябрь 2007
В данном пошаговом руководстве показано, как применить стили к элементу управления WPF, размещенному в Windows Forms.
В данном пошаговом руководстве необходимо выполнить следующие задачи:
Создание проекта.
Создание типа элемента управления WPF.
Применение стиля к элементу управления WPF.
Примечание. |
---|
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или версии среды. Для изменения параметров выберите команду Импорт и экспорт параметров в меню Сервис. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Обязательные компоненты
Для выполнения инструкций данного пошагового руководства необходимы следующие компоненты.
- Visual Studio 2008.
Создание проекта
Для начала следует создать проект Windows Forms.
Примечание. |
---|
При размещении WPF-содержимого поддерживаются только проекты C# и Visual Basic. |
Создание проекта
- Создайте новый проект приложения Windows Forms в Visual Basic или Visual C# с именем StylingWpfContent. Дополнительные сведения см. в разделе Практическое руководство. Создание проекта приложения Windows.
Создание типов элемента управления WPF
После добавления типа элемента управления WPF в проект, его можно разместить к элементе управления ElementHost.
Создание типов элемента управления WPF
Добавьте в проект новый элемент управления WPF UserControl. Используйте имя по умолчанию (UserControl1.xaml) для данного типа элемента управления. Дополнительные сведения см. в разделе Пошаговое руководство. Создание нового содержимого Windows Presentation Foundation для формы Windows Forms во время разработки.
Убедитесь, что элемент UserControl1 выбран в представлении конструктора. Дополнительные сведения см. в разделе Практическое руководство. Выбор и перемещение элементов в область конструктора.
В окне Свойства присвойте свойствам Width и Height значение 200.
Добавьте элемент управления System.Windows.Controls.Button в UserControl и свойству Content присвойте значение Отмена.
Добавьте второй элемент управления System.Windows.Controls.Button в UserControl и свойству Content присвойте значение ОК.
Выполните построение проекта.
Применение стиля к элементу управления WPF
Можно применять различные стили элемента управления WPF для изменения его внешнего вида и поведения.
Применение стиля к элементу управления WPF
Откройте форму Form1 в конструкторе Windows Forms.
В Области элементов дважды щелкните UserControl1 для создания экземпляра UserControl1 в форме.
Экземпляр UserControl1 размещается в новом элементе управления ElementHost с именем elementHost1.
В области смарт-тега для elementHost1 из раскрывающегося списка выберите Изменить размещенное содержимое.
UserControl1 откроется в WPF (конструктор).
В представлении XAML вставьте следующий код после открывающего тега <UserControl>:
XAML создает градиент с другой границей градиента. При нажатии элемента управления градиенты изменяются, и создается представление нажатой кнопки. Дополнительные сведения см. в разделе Стилизация и использование шаблонов.
[xaml]
<UserControl.Resources>
<LinearGradientBrush x:Key="NormalBrush" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#CCC" Offset="1.0"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="PressedBrush" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#BBB" Offset="0.0"/>
<GradientStop Color="#EEE" Offset="0.1"/>
<GradientStop Color="#EEE" Offset="0.9"/>
<GradientStop Color="#FFF" Offset="1.0"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="NormalBorderBrush" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#CCC" Offset="0.0"/>
<GradientStop Color="#444" Offset="1.0"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="BorderBrush" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#CCC" Offset="0.0"/>
<GradientStop Color="#444" Offset="1.0"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="PressedBorderBrush" EndPoint="0,1" StartPoint="0,0">
<GradientStop Color="#444" Offset="0.0"/>
<GradientStop Color="#888" Offset="1.0"/>
</LinearGradientBrush>
<Style x:Key="SimpleButton" TargetType="{x:Type Button}" BasedOn="{x:Null}">
<Setter Property="Background" Value="{StaticResource NormalBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource NormalBorderBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid x:Name="Grid">
<Border x:Name="Border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"/>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" Value="{StaticResource PressedBrush}" TargetName="Border"/>
<Setter Property="BorderBrush" Value="{StaticResource PressedBorderBrush}" TargetName="Border"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
[xaml]
<Button Height="23" Margin="41,52,98,0" Name="button1" VerticalAlignment="Top"
Style="{StaticResource SimpleButton}">Cancel</Button>
См. также
Основные понятия
Стилизация и использование шаблонов
Ссылки
Другие ресурсы
Миграция и взаимодействие систем
Использование элементов управления Windows Presentation Foundation