基本信息
源码名称:WPF样式大全 示例源码(Event Triggers)
源码大小:0.16M
文件格式:.zip
开发语言:C#
更新时间:2018-01-22
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
<Window x:Class="WPF_Triggers.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
Title="MainWindow"
Width="650"
Height="500"
WindowStartupLocation="CenterScreen">
<Window.Resources>
<Storyboard x:Key="MouseHoverStoryBoard">
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="EventTriggerBorder" Storyboard.TargetProperty="(FrameworkElement.Width)">
<EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="250" />
</DoubleAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="EventTriggerBorder" Storyboard.TargetProperty="Background.GradientStops[0].Color">
<LinearColorKeyFrame KeyTime="0:0:1" Value="#FF00FF" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="MouseLeaveStoryBoard">
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="EventTriggerBorder" Storyboard.TargetProperty="(FrameworkElement.Width)">
<EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="200" />
</DoubleAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="EventTriggerBorder" Storyboard.TargetProperty="Background.GradientStops[0].Color">
<LinearColorKeyFrame KeyTime="0:0:1" Value="#FFE9DDDA" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="LoadStoryBoard"
AutoReverse="True"
RepeatBehavior="Forever">
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="LoadedBorder" Storyboard.TargetProperty="(UIElement.Opacity)">
<EasingDoubleKeyFrame KeyTime="0:0:0.7" Value="0.4" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Opacity" Value="0.5" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
<ControlTemplate x:Key="ButtonBaseControlTemplate1" TargetType="{x:Type ButtonBase}">
<Microsoft_Windows_Themes:ButtonChrome x:Name="Chrome"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
SnapsToDevicePixels="True">
<ContentPresenter Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Content}"
ContentStringFormat="{TemplateBinding ContentStringFormat}"
ContentTemplate="{TemplateBinding ContentTemplate}"
RecognizesAccessKey="True"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Microsoft_Windows_Themes:ButtonChrome>
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocused" Value="True">
<Setter TargetName="Chrome" Property="RenderDefaulted" Value="False" />
</Trigger>
<Trigger Property="ToggleButton.IsChecked" Value="True">
<Setter TargetName="Chrome" Property="RenderPressed" Value="False" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="MulitTriggerButtonStyle" TargetType="Button">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsPressed" Value="True" />
<Condition Property="Background" Value="BlanchedAlmond" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter Property="Foreground" Value="Blue" />
<Setter Property="BorderThickness" Value="5" />
<Setter Property="BorderBrush" Value="Blue" />
</MultiTrigger.Setters>
</MultiTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Margin="0 0 0 5"
HorizontalAlignment="Center"
FontSize="16"
FontWeight="Black"
Text="Event Trigger" />
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*" />
<ColumnDefinition Width="5*" />
</Grid.ColumnDefinitions>
<Border x:Name="EventTriggerBorder"
Width="200"
Height="50"
Margin="20,0,0,0"
HorizontalAlignment="Left"
Cursor="Hand">
<Border.Background>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0" Color="#FFE9DDDA" />
<GradientStop Offset="1" Color="#FF9F6A1D" />
</LinearGradientBrush>
</Border.Background>
<Border.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseEnter">
<BeginStoryboard Storyboard="{StaticResource MouseHoverStoryBoard}" />
</EventTrigger>
<EventTrigger RoutedEvent="Mouse.MouseLeave">
<BeginStoryboard Storyboard="{StaticResource MouseLeaveStoryBoard}" />
</EventTrigger>
</Border.Triggers>
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
FontWeight="Black"
Text="MouseOver/MouseOut Trigger" />
</Border>
<Border x:Name="LoadedBorder"
Grid.Column="1"
Width="150"
Height="40"
Background="LightBlue"
BorderBrush="Black"
BorderThickness="1">
<Border.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="{StaticResource LoadStoryBoard}" />
</EventTrigger>
</Border.Triggers>
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
FontWeight="Black"
Text="Loaded Event Trigger" />
</Border>
</Grid>
<TextBlock Grid.Row="2"
Margin="0 10 0 5"
HorizontalAlignment="Center"
FontSize="16"
FontWeight="Black"
Text="Property Trigger" />
<Grid Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="2.5*" />
</Grid.ColumnDefinitions>
<Button x:Name="PropertyTriggerButton"
Grid.Column="0"
Width="160"
Height="40"
Margin="20,0,0,0"
HorizontalAlignment="Left"
Content="IsPressed Property"
Cursor="Hand"
FontWeight="Bold"
Style="{StaticResource ButtonStyle}"
Template="{DynamicResource ButtonBaseControlTemplate1}"
ToolTip="Press To Raise Property Trigger">
<Button.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="#FFE4D0D0" />
<GradientStop Offset="1" Color="#FF663434" />
<GradientStop Offset="0.513" Color="#FFA48181" />
</LinearGradientBrush>
</Button.Background>
</Button>
<Button Grid.Column="1"
Width="160"
Height="40"
Content="IsEnabled Property"
IsEnabled="False"
Style="{StaticResource ButtonStyle}" />
<Button Grid.Column="2"
Width="230"
Height="40"
Background="BlanchedAlmond"
Content="MultiTrigger (IsPressed Background)"
Cursor="Hand"
FontWeight="Black"
Style="{StaticResource MulitTriggerButtonStyle}"
Template="{DynamicResource ButtonBaseControlTemplate1}"
ToolTip="Press To Raise Multi-Property Trigger" />
</Grid>
<Grid Grid.Row="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5*" />
<ColumnDefinition Width="5*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0"
Grid.Column="0"
Margin="0 10 0 5"
HorizontalAlignment="Center"
FontSize="16"
FontWeight="Black"
Text="Data Trigger" />
<ListBox Grid.Row="1"
Grid.Column="0"
ItemsSource="{Binding ViewItemList}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="0 5 0 0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image x:Name="viewImage"
Grid.Row="0"
Width="100"
Height="60"
HorizontalAlignment="Center"
Source="{Binding Picture}"
Stretch="Fill" />
<TextBlock x:Name="viewText"
Grid.Row="1"
Margin="0 5 0 0"
HorizontalAlignment="Center"
FontWeight="Black"
Foreground="Green"
Text="{Binding Title}" />
</Grid>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=Picture}" Value="{x:Null}">
<Setter TargetName="viewImage" Property="Source" Value="/Images/noImage.png" />
<Setter TargetName="viewText" Property="Text" Value="No Image Available" />
<Setter TargetName="viewText" Property="Foreground" Value="Red" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBlock Grid.Row="0"
Grid.Column="1"
Margin="0 10 0 5"
HorizontalAlignment="Center"
FontSize="16"
FontWeight="Black"
Text="Multi-Data Trigger" />
<ListBox Grid.Row="1"
Grid.Column="1"
Margin="5 0 0 0"
ItemsSource="{Binding ViewItemList}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="0 5 0 0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image x:Name="viewImage"
Grid.Row="0"
Width="100"
Height="60"
HorizontalAlignment="Center"
Source="{Binding Picture}"
Stretch="Fill" />
<TextBlock x:Name="viewText"
Grid.Row="1"
Margin="0 5 0 0"
HorizontalAlignment="Center"
FontWeight="Black"
Text="{Binding Title}" />
</Grid>
<DataTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=Picture}" Value="{x:Null}" />
<Condition Binding="{Binding Path=Title}" Value="Waterfall" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter TargetName="viewImage" Property="Source" Value="/Images/noImage.png" />
<Setter TargetName="viewImage" Property="Opacity" Value="0.5" />
<Setter TargetName="viewText" Property="Background" Value="Brown" />
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Grid>
</Window>