| 
 | 
	
 
 
  [源码下载] 
 
 
 
 
重新想象 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 
[源码下载] |   
 
 
 
 | 
  
 |