zhouandtao 发表于 2015-5-22 08:39:35

重新想象 Windows 8 Store Apps (15)

  [源码下载]




重新想象 Windows 8 Store Apps (15) - 控件 UI: 字体继承, Style, ControlTemplate, SystemResource, VisualState, VisualStateManager  
作者:webabcd

介绍
重新想象 Windows 8 Store Apps 之 控件 UI


[*]字体继承 - 继承父辈的 Font 相关的信息
[*]Style - 样式
[*]ControlTemplate - 控件模板
[*]系统资源 - 系统内置的样式资源
[*]VisualState - 视图状态
[*]VisualStateManager - 视图状态管理器
  
示例
1、演示字体继承
Controls/UI/FontInherit.xaml
















  
2、演示 Style
Controls/UI/Style.xaml





      
























  Controls/UI/Style.xaml.cs



using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace XamlDemo.Controls.UI
{
public sealed partial class Style : Page
{
public Style()
{
this.InitializeComponent();
}
private void btnChangeStyle_Click_1(object sender, RoutedEventArgs e)
{
// 获取 Application 中的资源
// (Windows.UI.Xaml.Style)Application.Current.Resources["myStyle"];
// 获取 root 内的资源
txtStyleDemo.Style = (Windows.UI.Xaml.Style)root.Resources["MyTextStyle2"];
}
}
}
  
3、演示 ControlTemplate
Controls/UI/ControlTemplate.xaml



























































  Controls/UI/ControlTemplate.xaml.cs



using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace XamlDemo.Controls.UI
{
public sealed partial class ControlTemplate : Page
{
public ControlTemplate()
{
this.InitializeComponent();
}
private void btnChangeControlTemplate_Click_1(object sender, RoutedEventArgs e)
{
// 获取 Application 中的资源
// (Windows.UI.Xaml.Style)Application.Current.Resources["MyControlTemplate"];
// 获取 root 内的资源
btnControlTemplateDemo.Template = (Windows.UI.Xaml.Controls.ControlTemplate)root.Resources["MyControlTemplate2"];
}
}
}
  
4、演示如何使用系统内置的样式资源
Controls/UI/SystemResource.xaml














  
5、演示 VisualState 和 VisualStateManager 的应用
Controls/UI/VisualStateDemo.xaml



































































  Controls/UI/VisualStateDemo.xaml.cs



/*
* 演示 VisualState 和 VisualStateManager 的应用
*/
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace XamlDemo.Controls.UI
{
public sealed partial class VisualStateDemo : Page
{
public VisualStateDemo()
{
this.InitializeComponent();
}
private void btnVisualStateManager_Click_1(object sender, RoutedEventArgs e)
{
/*
* bool GoToState(Control control, string stateName, bool useTransitions) - 转换 VisualState
*   control - 需要转换 VisualState 的控件
*   stateName - 目标 VisualState 的名称
*   useTransitions - 是否使用 VisualTransition 进行过渡
*/
// 将 VisualState 转到指定的状态
VisualStateManager.GoToState(btnDemo, "PointerOver", true);
}
}
}
  
OK
[源码下载]
页: [1]
查看完整版本: 重新想象 Windows 8 Store Apps (15)