重新想象 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 属性的更多相关文章
- 重新想象 Windows 8.1 Store Apps 系列文章索引
[源码下载] [重新想象 Windows 8 Store Apps 系列文章] 重新想象 Windows 8.1 Store Apps 系列文章索引 作者:webabcd 1.重新想象 Windows ...
- 重新想象 Windows 8.1 Store Apps (76) - 新增控件: SearchBox
[源码下载] 重新想象 Windows 8.1 Store Apps (76) - 新增控件: SearchBox 作者:webabcd 介绍重新想象 Windows 8.1 Store Apps 之 ...
- 重新想象 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 ...
- 重新想象 Windows 8.1 Store Apps (72) - 新增控件: AppBar, CommandBar
[源码下载] 重新想象 Windows 8.1 Store Apps (72) - 新增控件: AppBar, CommandBar 作者:webabcd 介绍重新想象 Windows 8.1 Sto ...
- 重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker
[源码下载] 重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker 作者:webabcd 介绍重新想象 Windows 8.1 ...
- 重新想象 Windows 8.1 Store Apps (74) - 新增控件: Flyout, MenuFlyout, SettingsFlyout
[源码下载] 重新想象 Windows 8.1 Store Apps (74) - 新增控件: Flyout, MenuFlyout, SettingsFlyout 作者:webabcd 介绍重新想象 ...
- 重新想象 Windows 8.1 Store Apps (75) - 新增控件: Hub, Hyperlink
[源码下载] 重新想象 Windows 8.1 Store Apps (75) - 新增控件: Hub, Hyperlink 作者:webabcd 介绍重新想象 Windows 8.1 Store A ...
- 重新想象 Windows 8.1 Store Apps (78) - 控件增强: ScrollViewer, FlipView, Popup
[源码下载] 重新想象 Windows 8.1 Store Apps (78) - 控件增强: ScrollViewer, FlipView, Popup 作者:webabcd 介绍重新想象 Wind ...
- 重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame
[源码下载] 重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame 作者:webabcd 介绍重新想象 Windows 8.1 St ...
随机推荐
- Mac 下配置 SSH 免密码安全登录
Win下个人常使用 SecureCRT ,Mac 下感觉 SecureCRT 并不好使,常用 iTerm2+zsh 搭配使用.A连接B 无密码登陆,则A上面执行 ssh-keygen 一路回车,把 ~ ...
- TDA - Thread Dump Analyzer (Java线程分析工具)
TDA - Thread Dump Analyzer (Java线程分析工具)http://automationqa.com/forum.php?mod=viewthread&tid=2351 ...
- 配置ST3在浏览器中打开
打开Preferences - 「Key Bindings - User」,添加此行: {"keys": ["f1"],"command": ...
- OBS---环境配置之#include <D3DX10.h>报错
一.先贴错误 因为这个笔记主要记录我如何整好这个OBS源码环境的,给需要的童鞋一个参考 1.1.#include <D3DX10.h> 报错 没有这个 解决方案:把2,3先解决了就水到渠 ...
- jar包制作
1,利用jdk自带的工具制作 1) 首先要确保所有的java文件都被编译成了.class文件,可以用javac批量编译多个文件 javac c:\java\src\wz\learning\*.java ...
- mysql日期类型默认值'0000-00-00'容错处理
mysql日期默认值'0000-00-00'惹的祸 .net连mysql数据库时,如果表里有字段是日期型且值是‘0000-00-00’时,会报错.在C#里面日期不可能是那样的.或许是最小日期定义的差别 ...
- 实现一个 Variant
很多时候我们希望能够用一个变量来保存和操作不同类型的数据(比如解析文本创建 AST 时保存不同类型的结点),这种需求可以通过继承来满足,但继承意味着得使用指针或引用,除了麻烦和可能引起的效率问题,该做 ...
- Potocol Buffer详解
protocol安装及使用 上一篇博文介绍了一个综合案例,这篇将详细介绍protocol buffer. 为什么使用protocol buffer? java默认序列化效率较低. apache的thr ...
- 【weka应用技术与实践】过滤器
weka中的过滤器主要用于数据预处理阶段对数据集的各种操作. 今天简单地使用一下过滤器: 首先打开一个自带数据集weather.numeric.arff,这是一个关于通过天气条件,气温以及风力等因素来 ...
- 关于welcome-file-list(欢迎页)不起作用的解决办法
今天我遇到了一个问题,就是直接输入http://localhost:8080/xxx-admin/,不是跳转到index.html,而是报404找不到的错误,根据错误信息看明显是没有跳转到index. ...