背水一战 Windows 10 (17) - 动画: ThemeTransition(过渡效果)
作者:webabcd
介绍
背水一战 Windows 10 之 动画
- ThemeTransition 的概述
- EntranceThemeTransition - 页面间跳转时的过渡效果
- ContentThemeTransition - 内容改变时的过渡效果
- RepositionThemeTransition - 位置改变时的过渡效果
- PopupThemeTransition - 弹出时的过渡效果
- AddDeleteThemeTransition - 添加项或删除项时的过渡效果
- ReorderThemeTransition - 对集合中的元素重新排序时的过渡效果
- PaneThemeTransition - 基于边缘的较大 UI 滑入和滑出时的过渡效果
- EdgeUIThemeTransition - 基于边缘的较小 UI 滑入和滑出时的过渡
示例
1、过渡效果的概述
Animation/ThemeTransition/Summary.xaml
<Page
x:Class="Windows10.Animation.ThemeTransition.Summary"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.Animation.ThemeTransition"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10"> <TextBlock Text="请参见本 xaml 中的注释" /> <!--
UIElement.Transitions - 指定 UIElement 的过渡效果 <Rectangle>
<Rectangle.Transitions>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</Rectangle.Transitions>
</Rectangle>
--> <!--
Panel.ChildrenTransitions - 指定 Panel 的子元素们的过渡效果 <WrapGrid>
<WrapGrid.ChildrenTransitions>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</WrapGrid.ChildrenTransitions>
</WrapGrid>
--> <!--
ItemsControl.ItemContainerTransitions - 指定 ItemsControl 的项容器的过渡效果 <ItemsControl>
<ItemsControl.ItemContainerTransitions>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</ItemsControl.ItemContainerTransitions>
</ItemsControl>
--> <!--
ContentControl.ContentTransitions - 指定 ContentControl 的过渡效果 <ContentControl>
<ContentControl.ContentTransitions>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</ContentControl.ContentTransitions>
</ContentControl>
--> </StackPanel>
</Grid>
</Page>
2、演示 EntranceThemeTransition
Animation/ThemeTransition/Entrance.xaml
<Page
x:Class="Windows10.Animation.ThemeTransition.Entrance"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.Animation.ThemeTransition"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10"> <!--
EntranceThemeTransition - 页面间跳转时的过渡效果
FromHorizontalOffset - 初始位置的水平偏移量
FromVerticalOffset - 初始位置的垂直偏移量
IsStaggeringEnabled - 当包含多个子元素时,是否需要错开呈现它们
-->
<Frame Name="frame" Width="400" Height="100" HorizontalAlignment="Left" VerticalAlignment="Top">
<Frame.ContentTransitions>
<TransitionCollection>
<EntranceThemeTransition IsStaggeringEnabled="False" />
</TransitionCollection>
</Frame.ContentTransitions>
</Frame> <Button Name="btnGotoFrame1" Content="导航至 Frame1" Click="btnGotoFrame1_Click" Margin="0 10 0 0" />
<Button Name="btnGotoFrame2" Content="导航至 Frame2" Click="btnGotoFrame2_Click" Margin="0 10 0 0" /> <ItemsControl x:Name="itemsControl" Margin="0 10 0 0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid>
<WrapGrid.ChildrenTransitions>
<TransitionCollection>
<EntranceThemeTransition IsStaggeringEnabled="True" />
</TransitionCollection>
</WrapGrid.ChildrenTransitions>
</WrapGrid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Items>
<Rectangle Width="100" Height="100" Fill="Red" />
<Rectangle Width="100" Height="100" Fill="Green" />
<Rectangle Width="100" Height="100" Fill="Blue" />
</ItemsControl.Items>
<ItemsControl.Template>
<ControlTemplate>
<Border BorderBrush="Orange" BorderThickness="1">
<ItemsPresenter Margin="10" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Border>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl> </StackPanel>
</Grid>
</Page>
Animation/ThemeTransition/Entrance.xaml.cs
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls; namespace Windows10.Animation.ThemeTransition
{
public sealed partial class Entrance : Page
{
public Entrance()
{
this.InitializeComponent();
} private void btnGotoFrame1_Click(object sender, RoutedEventArgs e)
{
frame.Navigate(typeof(Frame1));
} private void btnGotoFrame2_Click(object sender, RoutedEventArgs e)
{
frame.Navigate(typeof(Frame2));
}
}
}
Animation/ThemeTransition/Frame1.xaml
<Page
x:Class="Windows10.Animation.ThemeTransition.Frame1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.Animation.ThemeTransition"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10">
<TextBlock Name="lblMsg" Text="我是 Frame1" />
</StackPanel>
</Grid>
</Page>
Animation/ThemeTransition/Frame2.xaml
<Page
x:Class="Windows10.Animation.ThemeTransition.Frame2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.Animation.ThemeTransition"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10">
<TextBlock Name="lblMsg" Text="我是 Frame2" />
</StackPanel>
</Grid>
</Page>
3、演示 ContentThemeTransition
Animation/ThemeTransition/Content.xaml
<Page
x:Class="Windows10.Animation.ThemeTransition.Content"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.Animation.ThemeTransition"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10"> <!--
ContentThemeTransition - 内容改变时的过渡效果
FromHorizontalOffset - 初始位置的水平偏移量
FromVerticalOffset - 初始位置的垂直偏移量
-->
<ContentControl Name="contentControl" PointerPressed="contentControl_PointerPressed">
<ContentControl.ContentTransitions>
<TransitionCollection>
<ContentThemeTransition />
</TransitionCollection>
</ContentControl.ContentTransitions>
<ContentControl.Content>
<Rectangle Height="200" Width="200" Fill="Orange" />
</ContentControl.Content>
</ContentControl> <!--
如果要在 ScrollViewer 或其他继承了 ContentControl 的控件中应用 ContentThemeTransition 的话,应该用如下方式
-->
<ScrollViewer Name="scrollViewer" Margin="0 10 0 0" PointerPressed="scrollViewer_PointerPressed">
<ContentControl Content="{Binding}">
<ContentControl.ContentTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Rectangle Height="200" Width="200" Fill="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" />
</StackPanel>
</DataTemplate>
</ContentControl.ContentTemplate>
<ContentControl.ContentTransitions>
<TransitionCollection>
<ContentThemeTransition/>
</TransitionCollection>
</ContentControl.ContentTransitions>
</ContentControl>
</ScrollViewer> </StackPanel>
</Grid>
</Page>
Animation/ThemeTransition/Content.xaml.cs
using System;
using Windows.UI;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Shapes; namespace Windows10.Animation.ThemeTransition
{
public sealed partial class Content : Page
{
public Content()
{
this.InitializeComponent();
} // 改变 ContentControl 的内容
private void contentControl_PointerPressed(object sender, PointerRoutedEventArgs e)
{
Rectangle rectangle = new Rectangle();
Random random = new Random(); rectangle.Height = ;
rectangle.Width = ;
rectangle.Fill = new SolidColorBrush(Color.FromArgb(, (byte)random.Next(, ), (byte)random.Next(, ), (byte)random.Next(, ))); contentControl.Content = rectangle;
} // 绑定最新的数据到 ScrollViewer
private void scrollViewer_PointerPressed(object sender, PointerRoutedEventArgs e)
{
Random random = new Random();
scrollViewer.DataContext = new SolidColorBrush(Color.FromArgb(, (byte)random.Next(, ), (byte)random.Next(, ), (byte)random.Next(, )));
}
}
}
4、演示 RepositionThemeTransition
Animation/ThemeTransition/Reposition.xaml
<Page
x:Class="Windows10.Animation.ThemeTransition.Reposition"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.Animation.ThemeTransition"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10"> <Button Name="btnMove" Content="移动 rectangle" Click="btnMove_Click" Margin="0 0 0 10" /> <!--
RepositionThemeTransition - 位置改变时的过渡效果
-->
<Rectangle Name="rectangle" Width="400" Height="100" Fill="Orange" HorizontalAlignment="Left">
<Rectangle.Transitions>
<TransitionCollection>
<RepositionThemeTransition />
</TransitionCollection>
</Rectangle.Transitions>
</Rectangle> </StackPanel>
</Grid>
</Page>
Animation/ThemeTransition/Reposition.xaml.cs
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls; namespace Windows10.Animation.ThemeTransition
{
public sealed partial class Reposition : Page
{
public Reposition()
{
this.InitializeComponent();
} // 改变矩形的位置
private void btnMove_Click(object sender, RoutedEventArgs e)
{
if (rectangle.Margin == new Thickness())
rectangle.Margin = new Thickness();
else
rectangle.Margin = new Thickness();
}
}
}
5、演示 PopupThemeTransition
Animation/ThemeTransition/Popup.xaml
<Page
x:Class="Windows10.Animation.ThemeTransition.Popup"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.Animation.ThemeTransition"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10"> <!--
PopupThemeTransition - 弹出时的过渡效果
FromHorizontalOffset - 初始位置的水平偏移量
FromVerticalOffset - 初始位置的垂直偏移量
-->
<Popup Name="popup" HorizontalOffset="200" VerticalOffset="10" IsLightDismissEnabled="True">
<Popup.Child>
<Border BorderBrush="Red" BorderThickness="1" Background="Blue" Width="200" Height="200">
<TextBlock Text="我是 Popup" HorizontalAlignment="Center" />
</Border>
</Popup.Child>
<Popup.ChildTransitions>
<TransitionCollection>
<PopupThemeTransition />
</TransitionCollection>
</Popup.ChildTransitions>
</Popup> <Button Name="btnPopup" Content="弹出 Popup" Click="btnPopup_Click" Margin="0 10 0 0" /> </StackPanel>
</Grid>
</Page>
Animation/ThemeTransition/Popup.xaml.cs
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls; namespace Windows10.Animation.ThemeTransition
{
public sealed partial class Popup : Page
{
public Popup()
{
this.InitializeComponent();
} // 显示 Popup
private void btnPopup_Click(object sender, RoutedEventArgs e)
{
if (!popup.IsOpen)
popup.IsOpen = true;
}
}
}
6、演示 AddDeleteThemeTransition
Animation/ThemeTransition/AddDelete.xaml
<Page
x:Class="Windows10.Animation.ThemeTransition.AddDelete"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.Animation.ThemeTransition"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10"> <Button x:Name="btnAddItem" Content="Add Item" Click="btnAddItem_Click"/>
<Button x:Name="btnDeleteItem" Content="Delete Item" Click="btnDeleteItem_Click" Margin="0 10 0 0" /> <!--
AddDeleteThemeTransition - 添加项或删除项时的过渡效果
-->
<ItemsControl x:Name="itemsControl" Margin="0 10 0 0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid>
<WrapGrid.ChildrenTransitions>
<TransitionCollection>
<AddDeleteThemeTransition />
</TransitionCollection>
</WrapGrid.ChildrenTransitions>
</WrapGrid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Items>
<Rectangle Width="100" Height="100" Fill="Red" />
<Rectangle Width="100" Height="100" Fill="Green" />
<Rectangle Width="100" Height="100" Fill="Blue" />
</ItemsControl.Items>
<ItemsControl.Template>
<ControlTemplate>
<Border BorderBrush="Orange" BorderThickness="1">
<ItemsPresenter Margin="10" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Border>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl> </StackPanel>
</Grid>
</Page>
Animation/ThemeTransition/AddDelete.xaml.cs
using System;
using Windows.UI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Shapes; namespace Windows10.Animation.ThemeTransition
{
public sealed partial class AddDelete : Page
{
public AddDelete()
{
this.InitializeComponent();
} // 添加项
private void btnAddItem_Click(object sender, RoutedEventArgs e)
{
Rectangle rectangle = new Rectangle();
Random random = new Random(); rectangle.Height = ;
rectangle.Width = ;
rectangle.Fill = new SolidColorBrush(Color.FromArgb(, (byte)random.Next(, ), (byte)random.Next(, ), (byte)random.Next(, ))); itemsControl.Items.Add(rectangle);
} // 删除项
private void btnDeleteItem_Click(object sender, RoutedEventArgs e)
{
if (itemsControl.Items.Count > )
itemsControl.Items.RemoveAt(itemsControl.Items.Count - );
}
}
}
7、演示 ReorderThemeTransition
Animation/ThemeTransition/Reorder.xaml
<Page
x:Class="Windows10.Animation.ThemeTransition.Reorder"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.Animation.ThemeTransition"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10"> <Button x:Name="btnAddItem" Content="Add Item" Click="btnAddItem_Click" /> <!--
ReorderThemeTransition - 对集合中的元素重新排序时的过渡效果
-->
<ItemsControl x:Name="itemsControl" Margin="0 10 0 0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid>
<WrapGrid.ChildrenTransitions>
<TransitionCollection>
<ReorderThemeTransition />
</TransitionCollection>
</WrapGrid.ChildrenTransitions>
</WrapGrid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Items>
<Rectangle Width="100" Height="100" Fill="Red" />
<Rectangle Width="100" Height="100" Fill="Green" />
<Rectangle Width="100" Height="100" Fill="Blue" />
</ItemsControl.Items>
<ItemsControl.Template>
<ControlTemplate>
<Border BorderBrush="Orange" BorderThickness="1">
<ItemsPresenter Margin="10" VerticalAlignment="Center" HorizontalAlignment="Center" />
</Border>
</ControlTemplate>
</ItemsControl.Template>
</ItemsControl> </StackPanel>
</Grid>
</Page>
Animation/ThemeTransition/Reorder.xaml.cs
using System;
using Windows.UI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Shapes; namespace Windows10.Animation.ThemeTransition
{
public sealed partial class Reorder : Page
{
public Reorder()
{
this.InitializeComponent();
} // 在集合的位置 2 处添加新的元素,以达到重新排序的效果
private void btnAddItem_Click(object sender, RoutedEventArgs e)
{
Rectangle rectangle = new Rectangle();
Random random = new Random(); rectangle.Height = ;
rectangle.Width = ;
rectangle.Fill = new SolidColorBrush(Color.FromArgb(, (byte)random.Next(, ), (byte)random.Next(, ), (byte)random.Next(, ))); itemsControl.Items.Insert(, rectangle);
}
}
}
8、演示 PaneThemeTransition
Animation/ThemeTransition/Pane.xaml
<Page
x:Class="Windows10.Animation.ThemeTransition.Pane"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.Animation.ThemeTransition"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10"> <!--
PaneThemeTransition - 基于边缘的较大 UI 滑入和滑出时的过渡效果
Edge - 边缘(Left, Top, Right, Bottom)
-->
<Popup Name="popup" HorizontalOffset="0" VerticalOffset="50" IsLightDismissEnabled="True">
<Popup.Child>
<Border BorderBrush="Red" BorderThickness="1" Background="Blue" Width="800" Height="200">
<TextBlock Text="我是 Popup" HorizontalAlignment="Center" />
</Border>
</Popup.Child>
<Popup.ChildTransitions>
<TransitionCollection>
<PaneThemeTransition Edge="Top" />
</TransitionCollection>
</Popup.ChildTransitions>
</Popup> <Button Name="btnShowPane" Content="显示 Pane" Click="btnShowPane_Click" Margin="0 10 0 0" /> </StackPanel>
</Grid>
</Page>
Animation/ThemeTransition/Pane.xaml.cs
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls; namespace Windows10.Animation.ThemeTransition
{
public sealed partial class Pane : Page
{
public Pane()
{
this.InitializeComponent();
} // 显示 Pane
private void btnShowPane_Click(object sender, RoutedEventArgs e)
{
if (!popup.IsOpen)
popup.IsOpen = true;
}
}
}
9、演示 EdgeUIThemeTransition
Animation/ThemeTransition/EdgeUI.xaml
<Page
x:Class="Windows10.Animation.ThemeTransition.EdgeUI"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows10.Animation.ThemeTransition"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"> <Grid Background="Transparent">
<StackPanel Margin="10 0 10 10"> <!--
EdgeUIThemeTransition - 基于边缘的较小 UI 滑入和滑出时的过渡效果
Edge - 边缘(Left, Top, Right, Bottom)
-->
<Popup Name="popup" HorizontalOffset="0" VerticalOffset="50" IsLightDismissEnabled="True">
<Popup.Child>
<Border BorderBrush="Red" BorderThickness="1" Background="Blue" Width="200" Height="50">
<TextBlock Text="我是 Popup" HorizontalAlignment="Center" />
</Border>
</Popup.Child>
<Popup.ChildTransitions>
<TransitionCollection>
<EdgeUIThemeTransition Edge="Top" />
</TransitionCollection>
</Popup.ChildTransitions>
</Popup> <Button Name="btnShowEdgeUI" Content="显示 EdgeUI" Click="btnShowEdgeUI_Click" Margin="0 10 0 0" /> </StackPanel>
</Grid>
</Page>
Animation/ThemeTransition/EdgeUI.xaml.cs
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls; namespace Windows10.Animation.ThemeTransition
{
public sealed partial class EdgeUI : Page
{
public EdgeUI()
{
this.InitializeComponent();
} // 显示 EdgeUI
private void btnShowEdgeUI_Click(object sender, RoutedEventArgs e)
{
if (!popup.IsOpen)
popup.IsOpen = true;
}
}
}
OK
[源码下载]
背水一战 Windows 10 (17) - 动画: ThemeTransition(过渡效果)的更多相关文章
- 背水一战 Windows 10 (16) - 动画: ThemeAnimation(主题动画)
[源码下载] 背水一战 Windows 10 (16) - 动画: ThemeAnimation(主题动画) 作者:webabcd 介绍背水一战 Windows 10 之 动画 PopInThemeA ...
- 背水一战 Windows 10 (15) - 动画: 缓动动画
[源码下载] 背水一战 Windows 10 (15) - 动画: 缓动动画 作者:webabcd 介绍背水一战 Windows 10 之 动画 缓动动画 - easing 示例演示缓动(easing ...
- 背水一战 Windows 10 (14) - 动画: 线性动画, 关键帧动画
[源码下载] 背水一战 Windows 10 (14) - 动画: 线性动画, 关键帧动画 作者:webabcd 介绍背水一战 Windows 10 之 动画 线性动画 - ColorAnimatio ...
- 背水一战 Windows 10 (42) - 控件(导航类): Frame 动画
[源码下载] 背水一战 Windows 10 (42) - 控件(导航类): Frame 动画 作者:webabcd 介绍背水一战 Windows 10 之 控件(导航类) Frame 动画 示例An ...
- 背水一战 Windows 10 (111) - 通知(Tile): secondary tile 模板之图片, secondary tile 模板之分组
[源码下载] 背水一战 Windows 10 (111) - 通知(Tile): secondary tile 模板之图片, secondary tile 模板之分组 作者:webabcd 介绍背水一 ...
- 背水一战 Windows 10 (41) - 控件(导航类): Frame
[源码下载] 背水一战 Windows 10 (41) - 控件(导航类): Frame 作者:webabcd 介绍背水一战 Windows 10 之 控件(导航类) Frame 示例Controls ...
- 背水一战 Windows 10 (52) - 控件(集合类): ItemsControl - 自定义 ItemsControl, 自定义 ContentPresenter
[源码下载] 背水一战 Windows 10 (52) - 控件(集合类): ItemsControl - 自定义 ItemsControl, 自定义 ContentPresenter 作者:weba ...
- 背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu
[源码下载] 背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu 作者:webabcd 介绍背水一战 Windows 10 之 控件(弹 ...
- 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox
[源码下载] 背水一战 Windows 10 (29) - 控件(文本类): RichTextBlock, RichTextBlockOverflow, RichEditBox 作者:webabcd ...
随机推荐
- 探索c#之递归APS和CPS
接上篇探索c#之尾递归编译器优化 累加器传递模式(APS) CPS函数 CPS变换 CPS尾递归 总结 累加器传递模式(Accumulator passing style) 尾递归优化在于使堆栈可以不 ...
- C#设计模式之观察者
Iron之观察者 引言 上一篇说的职责链模式,很有意思的一个模式,今天这个模式也是很有意思的一个模式,还是不啰嗦了直接进入主题吧. 场景介绍:在上一遍中说到用到部件检测,很巧妙的让调用者和处理者解耦了 ...
- Java批处理ExecutorService/CompletionService
服务端接收一个请求,常常需要同时进行几个计算或者向其他服务发送请求,最后拼装结果返回上游.本文就来看下JDK提供几个并行处理方案,牵涉到ExcecutorService/CompletionServi ...
- C#并行编程系列-文章导航
菜鸟初步学习,不对的地方请大神指教,参考<C#并行编程高级教程.pdf> 目录 C#并行编程-相关概念 C#并行编程-Parallel C#并行编程-Task C#并行编程-并发集合 C# ...
- Leetcode-2 Add Two Numbers
#2. Add Two Numbers You are given two linked lists representing two non-negative numbers. The digits ...
- iOS中多线程知识总结(一)
这一段开发中一直在处理iOS多线程的问题,但是感觉知识太散了,所以就把iOS中多线程的知识点总结了一下. 1.基本概念 1)什么是进程?进程的特性是什么? 进程是指在系统中正在运行的一个应用程序. ...
- LINQ系列:LINQ to SQL Concat/Union
1. Concat 单列Concat var expr = (from p in context.Products select p.ProductName) .Concat( from c in c ...
- Javascript算法系列之快速排序(Quicksort)
原文出自: http://www.nczonline.net/blog/2012/11/27/computer-science-in-javascript-quicksort/ https://gis ...
- lua解析脚本过程中的关键数据结构介绍
在这一篇文章中我先来介绍一下lua解析一个脚本文件时要用到的一些关键的数据结构,为将来的一系列代码分析打下一个良好的基础.在整个过程中,比较重要的几个源码文件分别是:llex.h,lparse.h.l ...
- x86汇编程序基础(AT&T语法)
一.简单的汇编程序 以下面这段简单的汇编代码为例 .section .data .section .text .globl _start _start: movl $, %eax movl $, %e ...