Пошаговое руководство: Оформление содержимого WPF
В этой статье показано, как применить стили к элементу управления Windows Presentation Foundation (WPF), размещенном в Форме Windows.
Необходимые условия
Для выполнения этого пошагового руководства вам потребуется Visual Studio.
Создание проекта
Откройте Visual Studio и создайте проект приложения Windows Forms в Visual Basic или Visual C# с именем StylingWpfContent
.
Заметка
При размещении содержимого WPF поддерживаются только проекты C# и Visual Basic.
Создание типов элементов управления WPF
После добавления элемента управления WPF в проект, его можно разместить в элементе управления ElementHost.
Добавьте в решение новый проект UserControl WPF. Используйте имя по умолчанию для типа элемента управления
UserControl1.xaml
. Дополнительные сведения см. в пошаговом руководстве: Создание нового содержимого WPF в Windows Forms во время проектирования.В режиме конструктора убедитесь, что выбран
UserControl1
.В окне свойств
задайте для свойства и значение 200 .Добавьте элемент управления System.Windows.Controls.Button в UserControl и задайте для свойства Content значение Cancel.
Добавьте второй элемент управления System.Windows.Controls.Button в UserControl и задайте для свойства Content значение OK.
Создайте проект.
Применение стиля к элементу управления WPF
Вы можете применить различные стили к элементу управления WPF, чтобы изменить его внешний вид и поведение.
Откройте
Form1
в конструкторе Windows Forms.В панели инструментовдважды щелкните
UserControl1
, чтобы создать экземплярUserControl1
на форме.Экземпляр
UserControl1
размещается в новом элементе управления ElementHost, названномelementHost1
.На панели смарт-тегов для
elementHost1
щелкните Изменить встроенное содержимое из раскрывающегося списка.UserControl1
открывается в конструкторе WPF.В представлении XAML вставьте следующий код XAML после
<UserControl>
открывающего тега. Этот 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>
Примените стиль
SimpleButton
, определенный на предыдущем шаге, к кнопке "Отмена", вставив следующий код XAML в тег<Button>
кнопки "Отмена" .Style="{StaticResource SimpleButton}
Объявление вашей кнопки в XAML будет выглядеть следующим образом:
<Button Height="23" Margin="41,52,98,0" Name="button1" VerticalAlignment="Top" Style="{StaticResource SimpleButton}">Cancel</Button>
Создайте проект.
Откройте
Form1
в конструкторе Windows Forms.Новый стиль применяется к элементу управления "Кнопка".
В меню Отладка выберите Запустить отладку, чтобы запустить приложение.
Нажмите кнопки ОК и Отмена и просмотрите различия.
См. также
.NET Desktop feedback