wpf 窗体翻页效果
点击设置翻页,取消翻回来
1.xaml
<Window x:Class="_3D翻页动画.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:_3D翻页动画"
mc:Ignorable="d"
Topmost="True"
WindowStartupLocation="CenterScreen"
WindowStyle="None"
RenderTransformOrigin="0.5,0.5"
AllowsTransparency="True"
Background="Transparent"
MouseLeftButtonDown="Window_MouseLeftButtonDown"
Title="MainWindow" Height="" Width="">
<!--//关键代码-->
<Window.RenderTransform>
<ScaleTransform x:Name="WindowTransform" ></ScaleTransform>
</Window.RenderTransform>
<Window.Resources>
<Style x:Key="LButton" TargetType="{x:Type Button}" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="" CornerRadius="5,5,5,5" Background="{TemplateBinding Background}">
<ContentPresenter x:Name="contentPresenter"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Content="{TemplateBinding Content}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" >
</ContentPresenter>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="#8bd256"></Setter>
<Setter Property="BorderBrush" Value="#8bd256"></Setter> <Style.Triggers>
<!--鼠标移入移出-->
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#11B322"></Setter>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" Value="Gray"></Setter>
</Trigger>
</Style.Triggers>
</Style> <Storyboard x:Key="ClosedStoryboard" Storyboard.TargetName="LoginGrid">
<DoubleAnimation From="" To="" Duration="0:0:2" Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[1].Offset"/>
<DoubleAnimation From="" To="" Duration="0:0:1.5" BeginTime="0:0:0.5" Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[2].Offset"/>
<ColorAnimation To="#00000000" Duration="" Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[2].Color"/>
</Storyboard>
<LinearGradientBrush x:Key="ClosedBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#FF000000" Offset=""/>
<GradientStop Color="#FF000000" Offset=""/>
<GradientStop Color="#FF000000" Offset=""/>
</LinearGradientBrush>
<!--//动画-->
<Storyboard x:Key="TransformToMiddle">
<DoubleAnimation Storyboard.TargetName="WindowTransform" Storyboard.TargetProperty="ScaleX" From="" To="-1" By="" Duration="0:0:1" />
</Storyboard>
<!--//动画-->
<Storyboard x:Key="TransformToMiddle1">
<DoubleAnimation Storyboard.TargetName="WindowTransform" Storyboard.TargetProperty="ScaleX" From="-1" To="" By="" Duration="0:0:1" />
</Storyboard> </Window.Resources>
<Border BorderBrush="Black" CornerRadius="" >
<Grid Name="LoginGrid" Background="Transparent" > <Grid.OpacityMask>
<LinearGradientBrush StartPoint="0.5,1" EndPoint="0.5,0">
<GradientStop Color="#00000000" Offset=""/>
<GradientStop Color="#00000000" Offset=""/>
<GradientStop Color="#00000000" Offset=""/>
</LinearGradientBrush>
</Grid.OpacityMask>
<Grid.Triggers>
<EventTrigger RoutedEvent="Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation From="" To="" Duration="0:0:1.5" Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[1].Offset"/>
<DoubleAnimation From="" To="" Duration="0:0:1" BeginTime="0:0:0.5" Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[2].Offset"/>
<ColorAnimation To="#FF000000" Duration="" Storyboard.TargetProperty="OpacityMask.(GradientBrush.GradientStops)[2].Color"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Grid.Triggers>
<Border BorderBrush="Black" BorderThickness="" CornerRadius="" Background="White"> <Grid Name="grid1">
<Grid.RowDefinitions>
<RowDefinition Height="62*"/>
<RowDefinition Height="103*"/>
</Grid.RowDefinitions>
<Border BorderBrush="Black" Background="#306aff" CornerRadius="10,10,0,0">
<Grid Background="Transparent">
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="">
<TextBlock Text="设置" FontSize="" Foreground="White" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown"></TextBlock>
<TextBlock Text="关闭" Margin="10,0,0,0" Foreground="White" FontSize="" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown_1"></TextBlock>
</StackPanel>
</Grid>
</Border>
<Border BorderBrush="Black" BorderThickness="" Background="White" Margin="183,93,183,175" Grid.RowSpan="" CornerRadius="">
<Image Width="" Height="" Source="Images/黑马.png" ></Image>
</Border>
<StackPanel Grid.Row="" Width="" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBox Name="textBoxName" Height="" >
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="BorderThickness" Value=""/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"></Setter>
<Setter Property="FontSize" Value=""></Setter>
<Setter Property="Padding" Value="10,0"/>
<Setter Property="BorderThickness" Value=""></Setter>
<Setter Property="AllowDrop" Value="true"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}" >
<Border x:Name="BackBorder" CornerRadius="" SnapsToDevicePixels="true" BorderThickness="0,0,0,1" Background="{TemplateBinding Background}" BorderBrush="#dcdcdc">
<ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsFocused" Value="false"/>
<Condition Property="Text" Value=""/>
</MultiTrigger.Conditions>
<Setter Property="Background">
<Setter.Value>
<VisualBrush AlignmentX="Left" AlignmentY="Center" Stretch="None">
<VisualBrush.Visual>
<TextBlock Padding="10 2" Background="Transparent" FontSize="" Block.TextAlignment="Left" TextWrapping="Wrap" Foreground="Silver">请输入用户名</TextBlock>
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
<PasswordBox Name="textBoxPassword" Height="" >
<PasswordBox.Style>
<Style TargetType="PasswordBox">
<Setter Property="BorderThickness" Value=""/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FontSize" Value=""/>
<Setter Property="Padding" Value="10,0"/>
<Setter Property="AllowDrop" Value="true"/>
<Setter Property="local:PasswordBoxMonitor.IsMonitoring" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type PasswordBox}">
<Border x:Name="BackBorder" CornerRadius="" SnapsToDevicePixels="true" BorderThickness="0,0,0,1" Background="{TemplateBinding Background}" BorderBrush="#dcdcdc">
<Grid VerticalAlignment="Center">
<ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsFocused" Value="false"/>
<Condition Property="local:PasswordBoxMonitor.PasswordLength" Value=""/>
</MultiTrigger.Conditions>
<Setter Property="Background">
<Setter.Value>
<VisualBrush AlignmentX="Left" AlignmentY="Center" Stretch="None">
<VisualBrush.Visual>
<TextBlock Padding="10 2" Background="Transparent" FontSize="" Block.TextAlignment="Left" TextWrapping="Wrap" Foreground="Silver"><Run Text="请输入密码"/></TextBlock>
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</MultiTrigger>
</Style.Triggers>
</Style>
</PasswordBox.Style>
</PasswordBox>
<Button Height="" Content="登录" Style="{StaticResource ResourceKey=LButton}" Background="#1cc4fc" BorderBrush="#1cc4fc" Foreground="White" FontSize="" Margin="0,5,0,0"/>
</StackPanel>
</Grid>
</Border>
<Border Name="border2" BorderThickness="" BorderBrush="Black" CornerRadius="" Visibility="Hidden">
<Border.Background>
<LinearGradientBrush StartPoint="0.5,1" EndPoint="0.5,0">
<GradientStop Color="#306aff" Offset=""/>
<GradientStop Color="#779dff" Offset="0.7"/>
<GradientStop Color="White" Offset=""/>
</LinearGradientBrush>
</Border.Background>
<Grid Name="grid2" >
<Grid.RowDefinitions>
<RowDefinition Height="146*"/>
<RowDefinition Height="19*"/>
</Grid.RowDefinitions> <TextBlock Text="关闭"
Margin="" VerticalAlignment="Top" HorizontalAlignment="Left" Grid.RowSpan=""
Foreground="White" FontSize=""
MouseLeftButtonDown="TextBlock_MouseLeftButtonDown_1"
RenderTransformOrigin="0.5,0.5">
<TextBlock.RenderTransform>
<ScaleTransform ScaleX="-1" />
</TextBlock.RenderTransform>
</TextBlock>
<Button Height="" Width="" Grid.Row=""
Content="取消" Style="{StaticResource LButton}"
RenderTransformOrigin="0.5,0.5"
Click="Button_Click_1">
<Button.RenderTransform>
<ScaleTransform ScaleX="-1" />
</Button.RenderTransform>
</Button>
</Grid>
</Border>
</Grid>
</Border>
</Window>
2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Navigation;
using System.Windows.Shapes;/// <summary>
///
/// </summary>
namespace _3D翻页动画
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
public MainWindow()
{
InitializeComponent();
myTimer.Tick += new EventHandler(timer1_Tick);
myTimer.Enabled = false;
myTimer.Interval = ; // page1.ColoedButtonClick += new EventHandler(ColoedButtonClick);
}
/// <summary>
/// 计时器
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick(object sender, EventArgs e)
{
myTimer.Stop();
if (grid1.Visibility == Visibility.Visible)
{
grid1.Visibility = Visibility.Collapsed;
border2.Visibility = Visibility.Visible;
}
else
{
grid1.Visibility = Visibility.Visible;
border2.Visibility = Visibility.Collapsed;
}
}
private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
//窗体移动
if (e.ButtonState == MouseButtonState.Pressed)
{
this.DragMove();
}
}
/// <summary>
/// 设置按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TextBlock_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Storyboard sbto = this.Resources["TransformToMiddle"] as Storyboard;
sbto.Begin(this);
myTimer.Start();
}
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TextBlock_MouseLeftButtonDown_1(object sender, MouseButtonEventArgs e)
{
this.IsEnabled = false;
LoginGrid.OpacityMask = this.Resources["ClosedBrush"] as LinearGradientBrush;
Storyboard std = this.Resources["ClosedStoryboard"] as Storyboard;
std.Completed += delegate { this.Close(); };
std.Begin();
}
/// <summary>
/// 取消
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Storyboard sbto = this.Resources["TransformToMiddle1"] as Storyboard;
sbto.Begin(this);
myTimer.Start();
}
}
}
wpf 窗体翻页效果的更多相关文章
- webapp应用--模拟电子书翻页效果
		
前言: 现在移动互联网发展火热,手机上网的用户越来越多,甚至大有超过pc访问的趋势.所以,用web程序做出仿原生效果的移动应用,也变得越来越流行了.这种程序也就是我们常说的单页应用程序,它也有一个英文 ...
 - 采用cocos2d-x lua 的listview 实现pageview的翻页效果之上下翻页效果
		
--翻页滚动效果local function fnScrollViewScrolling( sender,eventType) -- body if eventType == 10 the ...
 - css实现翻页效果
		
如图,鼠标移动到图上,实现右上角翻页的效果,本例主要border边框的设置. 一.基本概念 <html> <head> <style> #demo{ width:0 ...
 - turn.js  图书翻页效果
		
今天用turn.js 做图书的翻页效果遇到问题: 图片路径总是出错 调了一天,总算调出来了 我用的thinkphp,其他的不知道是不是一样 三 个地方要改动: 1.后台查出地址 注意的地方:1.地址要 ...
 - (旧)子数涵数·PS ——翻页效果
		
一.首先在网络上下载一张图片,作为素材.这是我下载的素材,至于为什么选择这张照片呢,当然不是因为自己的一些羞羞的念头啦. 二.打开Photoshop,我使用的版本是CS3(因为CS3所占的磁盘空间较小 ...
 - ajax翻页效果模仿yii框架
		
ajax翻页效果,模仿yii框架. 复制代码代码如下: <!DOCTYPE html> <html> <head> <title>ajax分页_w ...
 - 纯css3写的仿真图书翻页效果
		
对css3研究越深入,越觉得惊艳.css3说不上是万能的,但是它能实现的效果也超出了我的想象.它的高效率和动画效果的流畅性很多情况下能替代js的作用.个人习惯css3能实现的效果就不会用js,虽然在国 ...
 - Android 实现书籍翻页效果----完结篇
		
By 何明桂(http://blog.csdn.net/hmg25) 转载请注明出处 之前由于种种琐事,暂停了这个翻页效果的实现,终于在这周末完成了大部分功能,但是这里只是给出了一个基本的雏形,没有添 ...
 - Android 实现书籍翻页效果----升级篇
		
自从之前发布了<Android 实现书籍翻页效果----完结篇 >之后,收到了很多朋友给我留言,前段时间由于事情较多,博客写得太匆忙很多细节地方没有描述清楚.所以不少人对其中的地方有不少不 ...
 
随机推荐
- SqlServer把日期转换成不同格式的字符串的函数大全
			
SQL语句 结果SELECT CONVERT(varchar(100), GETDATE(), 0)-- 05 03 20 ...
 - 【校招面试 之 剑指offer】第18题 删除链表中的节点
			
题目一:在O(1)时间内删除链表节点. 给定单项链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点. 思路:(1)如果要删除的节点不是链表的尾节点,则将被删除节点的内容复制到该节点,然 ...
 - fiddler抓web请求
			
原理 fiddler抓包原理 fiddler 调试器注册到操作系统因特网服务中,系统所有的网络请求都会走fiddler的代理,所以fiddler才能抓包. Debug traffic from any ...
 - Binary Tree Traversal 二叉树的前中后序遍历
			
[抄题]:二叉树前序遍历 [思维问题]: 不会递归.三要素:下定义.拆分问题(eg root-root.left).终止条件 [一句话思路]: 节点非空时往左移,否则新取一个点 再往右移. [输入量] ...
 - dede的cfg_keywords和cfg_description无法显示
			
问题:在生成html文件时,网页的keywords和description的content为空,但后台显示这两项是有值的. 解决方案: 1.设置 系统->系统基本参数->站点根网址 设 ...
 - Codeforces 677C. Coloring Trees dp
			
C. Coloring Trees time limit per test:2 seconds memory limit per test:256 megabytes input:standard i ...
 - 11个 常见UI/UX设计师调查问卷分析
			
作为专业人员,设计出优秀的作品是UI/UX设计师必备的技能,同样重要的是良好的沟通能力.进一步来讲,提出正确的问题也是作为设计师的技能之一. 任何项目的首要任务都是收集需要的信息,以便正确有效地完成我 ...
 - android textview settext卡顿深层次原因
			
最近在公司项目里面发现listview里面的textview在调用settext函数的时候非常耗时,当时都有点不敢相信,这是因为如果你把textview设置成wrap_content,则每次调用set ...
 - c++中如何定义编译期间常量,即这个常量可以用于定义数组下标
			
在c++中,类里面的成员变量不仅仅可以被const修饰,还可以被static const修饰,此时一个内建类型(如int ,char ,long等)的static const 可以看做是一个编译期间的 ...
 - 2018.10.02 NOIP模拟 聚会(前缀和)
			
传送门 今天的签到题. 直接前缀和处理一下就秒了. 然而考试的时候智障用线段树维护被卡成了30分,交到OJ一测竟然有100? 搞得我都快生无可恋了. 如果用线段树来做可以类比这道题的写法,直接维护区间 ...