Windows 8.1 应用再出发 - 几种常用控件

本篇为大家简单介绍Windows 商店应用中控件的用法,为方便讲解,我们在文本控件和按钮控件这两类中分别挑选有代表性的控件进行详细说明。

1. 文本控件

(1) TextBlock

    TextBlock是最常用的文本显示控件,重点关注以下属性:

  • CharacterSpacing  字符之前的统一间距,间距 = 字体大小 / 1000。默认为0,正值增进跟踪和放宽字符间距。负值减少跟踪和收紧字符调间距。
  • IsColorFontEnabled  布尔值,确定颜色标志符号是否以彩色显示。如果颜色标志符号以彩色显示,则为 true;否则为 false。 默认为 true。
  • LineStackingStrategy  枚举值,确定每行行高的策略。有MaxHeight(默认值)、BaselineToBaseline 和 BlockLineHeight 三种。MaxHeight:每行行高以LineHeight和元素的自然高度中的最大值为准,BaselineToBaseline:每行行高以文本基线之间的距离为准,BlockLineHeight:每行行高以LineHeight为准。
  • OpticalMarginAlignment  枚举值,指定在与文本容器边界对齐时如何处理每个字符版式中靠边的值。有None(默认值) 和 TrimSideBearings 两种。None:使用来自字体版式值的侧方位,TrimSideBearings:不使用来自字体版式值的边位,且不将字形的一侧与字形"墨迹"部分开始的位置对齐
  • TextAlignment  枚举值,指示文本内容的水平对齐方式。有Left(默认值)、Right、Center 和 Justify 四种。Left:左对齐,Right:右对齐,Center:居中,Justify:容器内对齐。
  • TextLineBounds  枚举值,影响行高计算的公式。有Full(默认值)、Tight、TrimToBaseline 和 TrimToCapHeight 四种。Full:使用常规行高计算,Tight:行顶部高度是字体的大写字高,行底部告诉是文本基线,TrimToBaseline:行高的底部是文本基线,TrimToCapHeight:行顶部高度是字体的大写字高。
  • TextTrimming  枚举值,内容溢出内容区域时采取的休整行为。有CharacterEllipsis、Clip、None(默认值) 和 WordEllipsis 四种。CharacterEllipsis:在字符边界处修整文本。将绘制省略号 (...) 来替代剩余的文本,Clip:在像素级别修整文本,并以可视方式裁剪多余的字形,None:不休整文本,WordEllipsis:在单词边界处修整文本。将绘制省略号 (...) 来替代剩余的文本。
  • TextWrapping  枚举值,文本进行换行的方式。有NoWrap、Wrap 和 WrapWholeWords 三种。NoWrap:不换行,Wrap:文本行溢出容器的可用宽度,则进行换行。即使最后溢出的是单一单词,也仍然换行,WrapWholeWords:与Wrap的唯一不同是,对单一单词不换行。
        <TextBlock Text="I am a TextBlock ?"
                   CharacterSpacing="100" 
                   HorizontalAlignment="Center" VerticalAlignment="Center" 
                   FontFamily="Arial" FontStyle="Italic" FontSize="50" FontWeight="Black"
                   IsColorFontEnabled="True"
                   LineStackingStrategy="BlockLineHeight"
                   OpticalMarginAlignment="TrimSideBearings"
                   TextAlignment="Center" TextLineBounds="TrimToBaseline" TextReadingOrder="DetectFromContent" 
                   TextTrimming="WordEllipsis" TextWrapping="WrapWholeWords"
                   Height="120" Width="500"/>

(2) TextBox

TextBox是文本输入控件,重点关注以下属性:

  • AcceptsReturn  布尔值,确定文本框是否允许换行或回车符。如果文本框允许换行符,则为 true;否则为 false。默认为 false。
  • FlowDirection  布尔值,确定文本框中内容的流动方向。有LeftToRight 和 RightToLeft 两种。LeftToRight:内容从左向右流动,RightToLeft:内容哦那个从右向左流动。
  • Header  文本框标头内容,默认为null。
  • InputScope  指定SIP类型,来改变控件输入范围。
  • IsSpellCheckEnabled  布尔值,指定 TextBox 输入是否应与拼写检查引擎交互。如果 TextBox 输入与拼写检查引擎进行交互,则为 True;否则为 false。默认为 false。
  • IsTextPredictionEnabled  确定是否应启用此 TextBox 的文本预测功能("自动完成")的值。如果为 true,则启用文本预测功能;否则为 false。默认为 true。
        <TextBox AcceptsReturn="True" Background="AliceBlue" BorderBrush="Blue" BorderThickness="2" 
                 CompositeMode="Inherit" FlowDirection="RightToLeft" FontFamily="Arial" FontStyle="Italic" FontSize="50" FontWeight="Black" 
                 Header="Header Text" InputScope="Number" IsReadOnly="False" IsSpellCheckEnabled="True" IsTextPredictionEnabled="False" 
                 SelectedText="123" SelectionHighlightColor="AliceBlue" HorizontalAlignment="Center" VerticalAlignment="Center"/>

 (3)PasswordBox

     PasswordBox 是常用的密码输入控件,重点关注以下属性:

  • MaxLength  由此 PasswordBox 处理的密码的最大长度, 值为 0 表示没有限制。默认为 0。
  • Password  PasswordBox 当前保留的密码。
  • PasswordChar  PasswordBox 的掩码字符,默认值为 ●。
  • IsPasswordRevealButtonEnabled  布尔值,指定 PasswordBox 的可视 UI 是否包括切换显示或隐藏键入字符的铵钮元素。True 显示密码显示按钮;false 不显示密码显示按钮。默认为 false。
        <PasswordBox Height="50" Width="200" MaxLength="8" Password="123456" PasswordChar="*" IsPasswordRevealButtonEnabled="True"/>

2. 按钮控件

(1) Button

    Button是最常用的按钮控件,重点关注以下内容:

  • ClickMode  枚举值,指示 Click 事件发生时间的值。有Hover、Press 和 Release(默认值)三种。Hover:将鼠标指针移到控件上方时应引发 Click 事件,Press:按下鼠标按键且鼠标指针位于控件上方时应引发 Click 事件,如果使用的是键盘,则指定在按下空格键或 ENTER 键且控件具有键盘焦点时应引发 Click 事件,Release:按下并松开鼠标左键且鼠标指针位于控件上方时应引发 Click 事件,如果使用的是键盘,则指定在按下并松开空格键或 Enter 键且控件具有键盘焦点时应引发 Click 事件。
  • HorizontalContentAlignment  枚举值,控件内容的水平对齐方式。有Center(默认值)、Left、Right 和 Stretch四种。Center:与父元素布局的中心对齐元素,Left:与父元素布局的左侧对齐元素,Right:与父元素布局的右侧对齐元素,Stretch:拉伸以填充整个父元素布局槽的元素。
  • VerticalContentAlignment  枚举值,控件内容的垂直对齐方式。有Center(默认值)、Bottom、Top 和 Stretch四种。
  • Flyout  与此按钮关联的浮出控件。当按钮点击时,Flyout控件浮出,再点击按钮或空白处,Flyout消失。
        <Button Content="Click Me." ClickMode="Release" HorizontalContentAlignment="Left" VerticalContentAlignment="Top" 
                FontSize="50" HorizontalAlignment="Center" VerticalAlignment="Center" Height="200" Width="400" Click="Button_Click">
            <Button.Flyout>
                <Flyout>
                    <TextBlock Text="I am flyout content."/>
                </Flyout>
            </Button.Flyout>
        </Button>

(2) HyperlinkButton 

     HyperlinkButton 是常用的超链接按钮,重点关注以下内容:

  • NavigateUri  单击 HyperlinkButton 时要导航到的统一资源标识符 (URI)
        <HyperlinkButton Content="go to google." Foreground="Green" FontSize="50" HorizontalAlignment="Center" VerticalAlignment="Center" 
                         HorizontalContentAlignment="Left" VerticalContentAlignment="Top" NavigateUri="http://www.google.com.hk"/>

(3) ToggleButton

    ToggleButton 是可以切换状态的按钮,重点关注以下内容:

  • IsThreeState  布尔值,指示控件是否支持三个状态的值。如果控件支持三种状态,则为 True;否则为 false。默认为 false。
  • IsChecked  布尔值,指定是否选中 ToggleButton。如果已选中 ToggleButton,则为 true;如果未选中 ToggleButton,则为 false;否则为 null。默认为 false。
        <ToggleButton Content="Toggle Button" IsThreeState="True" FontSize="50" IsChecked="True" HorizontalAlignment="Center" VerticalAlignment="Center" 
                      Checked="ToggleButton_Checked" Unchecked="ToggleButton_Unchecked" Indeterminate="ToggleButton_Indeterminate"/>
        // 按钮变为选中状态后触发的事件
        private void ToggleButton_Checked(object sender, RoutedEventArgs e)
        {}
        // 按钮变为选中未状态后触发的事件
        private void ToggleButton_Unchecked(object sender, RoutedEventArgs e)
        {}
        // 按钮变为不确定状态后触发的事件
        private void ToggleButton_Indeterminate(object sender, RoutedEventArgs e)
        {}

(4) RadioButton

    RadioButton是单选按钮,继承自ToggleButton,重点关注以下内容:

  • GroupName  指定哪些 RadioButton 控件互相排斥的名称,同一GroupName的RadioButton不能同时被选中。
  • IsChecked  布尔值,指定是否选中按钮。注意如果同一GroupName的控件同时设置为true,则后面的控件选中状态会覆盖前面的。
        <RadioButton GroupName="groupName" IsChecked="True" Content="RadioButton One"/>
        <RadioButton GroupName="groupName" IsChecked="True" Content="RadioButton Two"/>

(5) CheckBox

    CheckBox是复选按钮,继承自ToggleButton,重点关注以下内容:

  • IsChecked  布尔值,指定是否选中按钮。
        <CheckBox IsChecked="True" Content="CheckBox One"/>
        <CheckBox IsChecked="False" Content="CheckBox One"/>

到这里我们就完成了几种常用控件的介绍,希望能帮助大家更好的理解Windows 商店应用中控件的用法,谢谢。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏flutter开发者

[Flutter Widget] Wrap

在前面的文章中我们讲了很多Widget的用法,包括简单的Widget和复杂一点的布局,其实归根到底都是为了解决我们在界面布局上的需求,最近很多童鞋私信我Flut...

6085
来自专栏偏前端工程师的驿站

CSS魔法堂:display:none与visibility:hidden的恩怨情仇

 还记得面试时被问起"请说说display:none和visibility:hidden的区别"吗?是不是回答完display:none不占用原来的位置,而vi...

2063
来自专栏肖蕾的博客

解决安卓中XML文件声明高度 宽度无效的问题

1093
来自专栏欧阳大哥的轮子

Android中的视图焦点Focus的详细介绍

在非触摸屏设备中接收事件和处理响应的控件是具有焦点(Focused)的控件。一个窗口中一个时间内只能有一个具有焦点的控件。在早期具有滚轮设备的android系统...

1192
来自专栏代码世界

HTML DOM Event 对象

1472
来自专栏静晴轩

jQuery VS JavaScript原生API

如今技术日新月异,各类框架库也是层次不穷。即便当年漫山红遍的JQuery(让开发者write less, do more,So Perfect!!)如今也有被替...

4516
来自专栏owent

JQuery扩展插件--提示信息

https://github.com/owt5008137/SimpleMetro

501
来自专栏潇涧技术专栏

Art of Android Development Reading Notes 7

《Android开发艺术探索》读书笔记 (7) 第7章 Android动画深入分析

903
来自专栏前端杂货铺

翻译:如何使用CSS实现多行文本的省略号显示

本文翻译自CSS Ellipsis: How to Manage Multi-Line Ellipsis in Pure CSS,文中某些部分有些许改动,并添...

3796
来自专栏水击三千

浅谈JavaScript的事件(事件模拟)

  事件经常由操作或者通过浏览器功能触发,通过JavaScript也可以触发元素的事件。通过JavaScript触发事件,也称为事件的模拟。 DOM中事件模拟 ...

2957

扫码关注云+社区

领取腾讯云代金券