[源码下载]

重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件增加了 PlaceholderText 属性

作者:webabcd

介绍
重新想象 Windows 8.1 Store Apps 之控件增强

  • 文本类控件的增强
  • 为一些控件增加了 Header 属性和 HeaderTemplate 属性
  • 为一些控件增加了 PlaceholderText 属性

示例
1、演示文本类控件的新增功能
TextDemo.xaml

<Page
x:Class="Windows81.Controls.TextDemo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows81.Controls"
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="120 0 0 0"> <!--文本显示类控件新增了 MaxLines 属性:用于指定文本最大的显示行数-->
<TextBlock FontSize="14.667" MaxLines="3">
<TextBlock.Inlines>
<Run>111111</Run>
<LineBreak />
<Run>222222</Run>
<LineBreak />
<Run>333333</Run>
<LineBreak />
<Run>444444</Run>
<LineBreak />
<Run>555555</Run>
<LineBreak />
<Run>666666</Run>
</TextBlock.Inlines>
</TextBlock> <!--文本输入类控件新增了 PreventKeyboardDisplayOnProgrammaticFocus 属性:当通过编程方式在文本框上设置焦点时,是否不显示屏幕触摸键盘-->
<TextBox Margin="0 10 10 0" PreventKeyboardDisplayOnProgrammaticFocus="True" /> <!--
文本显示类控件和文本输入类控件:
IsTextSelectionEnabled - 用于指定文本是否可以选中
SelectionHighlightColor - 用于指定选中文本的颜色
-->
<TextBlock Text="webabcd" FontSize="14.667" Margin="0 10 0 0" IsTextSelectionEnabled="True">
<TextBlock.SelectionHighlightColor>
<SolidColorBrush Color="Red" />
</TextBlock.SelectionHighlightColor>
</TextBlock> <!--文本输入类控件新增了 Paste 事件-->
<TextBox Name="txtPaste" PlaceholderText="自定义粘贴文本数据" Paste="txtPaste_Paste" Margin="0 10 0 0" /> <!--
文本显示类控件
TextTrimming.None - 不修整文本
TextTrimming.Clip - 在像素级别修整文本(win8.1 新增)
TextTrimming.WordEllipsis - 在单词级别修整文本,同时用省略号代替剩余文本
TextTrimming.CharacterEllipsis - 在字符级别修整文本,同时用省略号代替剩余文本(win8.1 新增)
-->
<TextBlock FontSize="24" HorizontalAlignment="Left" Text="abcdefghijklmnopqrstuvwxyz" Width="200" Margin="0 10 0 0" TextTrimming="None"/>
<TextBlock FontSize="24" HorizontalAlignment="Left" Text="abcdefghijklmnopqrstuvwxyz" Width="200" Margin="0 10 0 0" TextTrimming="Clip"/>
<TextBlock FontSize="24" HorizontalAlignment="Left" Text="abcdef ghijklm nopqrstuvwxyz" Width="200" Margin="0 10 0 0" TextTrimming="WordEllipsis"/>
<TextBlock FontSize="24" HorizontalAlignment="Left" Text="abcdef ghijklm nopqrstuvwxyz" Width="200" Margin="0 10 0 0" TextTrimming="CharacterEllipsis"/> <!--
新增的 TextWrapping.WrapWholeWords 仅针对文本显示类控件:
TextWrapping.NoWrap - 不换行(文本显示类控件和文本输入类控件可用)
TextWrapping.Wrap - 换行,必要时可截断单词(文本显示类控件和文本输入类控件)
TextWrapping.WrapWholeWords - 换行,但是绝不截断单词,即使单词可能会显示不全(仅针对文本显示类控件,win8.1 新增)
-->
<TextBlock FontSize="24.667" HorizontalAlignment="Left" Width="100" Height="60" Text="iamwebabcd w" Margin="0 10 0 0" TextWrapping="NoWrap" />
<TextBlock FontSize="24.667" HorizontalAlignment="Left" Width="100" Height="60" Text="iamwebabcd w" Margin="0 10 0 0" TextWrapping="Wrap" />
<TextBlock FontSize="24.667" HorizontalAlignment="Left" Width="100" Height="60" Text="iamwebabcd w" Margin="0 10 0 0" TextWrapping="WrapWholeWords" /> </StackPanel>
</Grid>
</Page>

TextDemo.xaml.cs

/*
* 本例演示文本类控件的新增功能
*
*
* 关于文本类控件的基础请参见:
* http://www.cnblogs.com/webabcd/archive/2013/01/07/2848564.html
*/ using System;
using Windows.ApplicationModel.DataTransfer;
using Windows.UI.Xaml.Controls; namespace Windows81.Controls
{
public sealed partial class TextDemo : Page
{
public TextDemo()
{
this.InitializeComponent();
} // 当在一个文本输入类控件中粘贴时触发的事件
private async void txtPaste_Paste(object sender, TextControlPasteEventArgs e)
{
// 关于剪切板的基础请参见:http://www.cnblogs.com/webabcd/archive/2013/07/08/3177123.html DataPackageView dataPackageView = Windows.ApplicationModel.DataTransfer.Clipboard.GetContent(); // 判断剪切板中是否有文本数据
if (dataPackageView.Contains(StandardDataFormats.Text))
{
try
{
// 获取剪切板中的文本数据
string text = await dataPackageView.GetTextAsync(); // 用我们自定义的方式粘贴数据
txtPaste.Text = text + text;
}
catch
{ }
}
else
{ } // 已经处理粘贴操作了,其他路由不用再处理了
e.Handled = true;
}
}
}

2、控件 ComboBox, Slider, DatePicker, TimePicker, TextBox, PasswordBox, RichEditBox 增加了 Header 属性和 HeaderTemplate 属性
ControlHeader.xaml

<Page
x:Class="Windows81.Controls.ControlHeader"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows81.Controls"
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="120 0 0 0"> <!--
控件 ComboBox, Slider, DatePicker, TimePicker, TextBox, PasswordBox, RichEditBox
增加了 Header 属性和 HeaderTemplate 属性
--> <!--
设置 TextBox 的 HeaderTemplate
-->
<TextBox Name="textBox" IsReadOnly="True" Margin="0 0 20 0">
<TextBox.HeaderTemplate>
<DataTemplate>
<Button Content="Click to edit" Click="Button_Click" />
</DataTemplate>
</TextBox.HeaderTemplate>
</TextBox> </StackPanel>
</Grid>
</Page>

ControlHeader.xaml.cs

/*
* 控件 ComboBox, Slider, DatePicker, TimePicker, TextBox, PasswordBox, RichEditBox 增加了 Header 属性和 HeaderTemplate 属性
* 1、Header - 可以设置一个纯文本,不能命中测试,空 Header 的话不会占用任何空间
* 2、HeaderTemplate - 可以将 Header 设置为任何 xaml,且支持命中测试
*/ using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls; namespace Windows81.Controls
{
public sealed partial class ControlHeader : Page
{
public ControlHeader()
{
this.InitializeComponent();
} private void Button_Click(object sender, RoutedEventArgs e)
{
textBox.IsReadOnly = false; // 设置 TextBox 的 HeaderTemplate 和 Header
textBox.HeaderTemplate = null;
textBox.Header = "Editable TextBox";
}
}
}

3、控件 ComboBox, PasswordBox, RichEditBox, SearchBox, TextBox 增加了 PlaceholderText 属性
PlaceholderTextDemo.xaml

<Page
x:Class="Windows81.Controls.PlaceholderTextDemo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Windows81.Controls"
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="120 0 0 0"> <!--
控件 ComboBox, PasswordBox, RichEditBox, SearchBox, TextBox
增加了 PlaceholderText 属性
--> <!--
设置 ComboBox 的 PlaceholderText
-->
<ComboBox Header="Colors" PlaceholderText="Pick a color" Margin="0 0 20 0">
<x:String>Blue</x:String>
<x:String>Green</x:String>
<x:String>Red</x:String>
<x:String>Yellow</x:String>
</ComboBox> <!--
设置 PasswordBox 的 PlaceholderText
-->
<PasswordBox Header="Password" PlaceholderText="Enter your password" Margin="0 20 20 0" /> </StackPanel>
</Grid>
</Page>

PlaceholderTextDemo.xaml.cs

/*
* 控件 ComboBox, PasswordBox, RichEditBox, SearchBox, TextBox 增加了 PlaceholderText 属性
*/ using Windows.UI.Xaml.Controls; namespace Windows81.Controls
{
public sealed partial class PlaceholderTextDemo : Page
{
public PlaceholderTextDemo()
{
this.InitializeComponent();
}
}
}

OK
[源码下载]

重新想象 Windows 8.1 Store Apps (77) - 控件增强: 文本类控件的增强, 部分控件增加了 Header 属性和 HeaderTemplate 属性, 部分控件增加了 PlaceholderText 属性的更多相关文章

  1. 重新想象 Windows 8.1 Store Apps 系列文章索引

    [源码下载] [重新想象 Windows 8 Store Apps 系列文章] 重新想象 Windows 8.1 Store Apps 系列文章索引 作者:webabcd 1.重新想象 Windows ...

  2. 重新想象 Windows 8.1 Store Apps (76) - 新增控件: SearchBox

    [源码下载] 重新想象 Windows 8.1 Store Apps (76) - 新增控件: SearchBox 作者:webabcd 介绍重新想象 Windows 8.1 Store Apps 之 ...

  3. 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图

    [源码下载] 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Co ...

  4. 重新想象 Windows 8.1 Store Apps (72) - 新增控件: AppBar, CommandBar

    [源码下载] 重新想象 Windows 8.1 Store Apps (72) - 新增控件: AppBar, CommandBar 作者:webabcd 介绍重新想象 Windows 8.1 Sto ...

  5. 重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker

    [源码下载] 重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker 作者:webabcd 介绍重新想象 Windows 8.1 ...

  6. 重新想象 Windows 8.1 Store Apps (74) - 新增控件: Flyout, MenuFlyout, SettingsFlyout

    [源码下载] 重新想象 Windows 8.1 Store Apps (74) - 新增控件: Flyout, MenuFlyout, SettingsFlyout 作者:webabcd 介绍重新想象 ...

  7. 重新想象 Windows 8.1 Store Apps (75) - 新增控件: Hub, Hyperlink

    [源码下载] 重新想象 Windows 8.1 Store Apps (75) - 新增控件: Hub, Hyperlink 作者:webabcd 介绍重新想象 Windows 8.1 Store A ...

  8. 重新想象 Windows 8.1 Store Apps (78) - 控件增强: ScrollViewer, FlipView, Popup

    [源码下载] 重新想象 Windows 8.1 Store Apps (78) - 控件增强: ScrollViewer, FlipView, Popup 作者:webabcd 介绍重新想象 Wind ...

  9. 重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame

    [源码下载] 重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame 作者:webabcd 介绍重新想象 Windows 8.1 St ...

随机推荐

  1. android studio出现Error:compileSdkVersion android-x requires compiling with JDK 7问题

    初装Android studio的童鞋可能或多或少会存在一些问题,比如出现Error:compileSdkVersion android-x requires compiling with JDK 7 ...

  2. WinStore开发知识导航集锦

    1.页面导航与页面传值:http://blog.csdn.net/tcjiaan/article/details/7895487

  3. FastSocket客户端/服务端通讯示例

    新建控制台项目,命名为Server 添加FastSocket.SocketBase,FastSocket.Server引用   Socket命令服务类: Sodao.FastSocket.Server ...

  4. 突破短板,传统桌面程序 使用webapi 扩展迎合web和移动端融合的需求

    传统桌面程序不能完全被web和移动端替代,但是需要改造.这里要说的是巧用webapi把以前用dll和com组件,ocx等方式做接口,做分布式开发的方式,改成restful 风格api的方式实现跨平台, ...

  5. URAL 1549 Another Japanese Puzzle(构造)

    题目大意 构造一条闭合路线,使得路线不能相交,并且走直线的步数小于等于 S,转弯(左转和右转)的步数小于等于 T.(0≤S,T≤1000) 求一条最长的路线 做法分析 注意到,因为要求路线闭合,那么转 ...

  6. How to debug Typescript in browser

    How to debug typescript, In Chrome, we need to press F12, open settings, uncheck the Enable JavaScri ...

  7. iis错误记录

    1:iis错误 解决方法: 输入C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -i 这里由于我的是默认在Administ ...

  8. 让我们一起Go(九)

    前言: 又好久么更新了,无奈公司项目多,自己又接了私活,于是时间更不够了......不过我是不会让它流产的,坚持! 一.Go语言中的函数 终于轮到函数了,其实也没有什么好说的,无非就是一个语法问题,c ...

  9. Netty5 + HTTPS 练习

    本次以<Netty权威指南>第十章里面的例子为基础修改而来 HttpsFileServerHandler.java package com.jieli.nettytest.httpsfil ...

  10. 【转】为什么很多看起来不是很复杂的网站,比如 Facebook、淘宝,都需要大量顶尖高手来开发?

    先说你看到的页面上,最重要的几个:[搜索商品]——这个功能,如果你有几千条商品,完全可以用select * from tableXX where title like %XX%这样的操作来搞定.但是— ...