文本控件的一些重要的属性

开篇之前:

如果对Windows 8.1中的文本控件新增属性感兴趣,推荐王磊老师的这方面的博客

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


我这边写的其实跟王磊老师的基本上是一样的,只是有一些不同而已

a.MaxLines属于文本显示类控件的属性

  MaxLines规定了只能有6行,所以最后一个"喜羊羊"就没有出现

  同时注意TextBlock.Inlines的写法和以下Run,Span,Bold等....标签的使用

b.PreventKeyboardDisplayOnProgrammaticFocus属于文本输入类控件的属性

  PreventKeyboardDisplayOnProgrammaticFocus 属性:当通过编程方式在文本框上设置焦点时,是否不显示屏幕触

  摸键盘

c.文本显示类控件和文本输入类控件都有SelectionHighlightColor属性

  文本显示类控件有IsTextSelectionEnabled属性,文本输入类控件则没有

  IsTextSelectionEnabled设置文本是否能被选中

  SelectionHighlightColor设置选中部分背景呈现什么颜色,注意不是选中的文本颜色

  注意TextBox不存在IsTextSelectionEnabled属性

d.控件 ComboBox, PasswordBox, RichEditBox, SearchBox, TextBox有PlaceholderText属性

  PlaceholderText属性是文本输入类控件的属性

e.TextTrimming是文本显示类控件的属性

  注意下面关于TextTrimming代码中的第三个和第四个的区别即可,第三个最小单位是单词,第四个最小单位是字符

f.文本显示类控件和文本输入类控件都具备TextTrapping属性

g.控件 ComboBox, Slider, DatePicker, TimePicker, TextBox, PasswordBox, RichEditBox增加了 Header 属性和

  HeaderTemplate 属性

  Header不能命中测试,只能写文本

  HeaderTemplate能命中测试(就像下面的button,可以有点击事件一样),并且在其DataTemplate中可以写任何xaml


<Page
    x:Class="TestUnion.TextControllerTest"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:TestUnion"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid>
        <Hub Header="TextControllerTest" DefaultSectionIndex="0">
            <HubSection Header="MaxLines">
                <!--MaxLines属于文本显示类控件的属性-->
                <!--MaxLines规定了只能有6行,所以最后一个"喜羊羊"就没有出现-->
                <!--同时注意TextBlock.Inlines的写法和以下Run,Span,Bold等标签的使用-->
                <DataTemplate>
                    <TextBlock FontSize="30" MaxLines="6">
                        <TextBlock.Inlines>
                            <Run>汤姆</Run>
                            <LineBreak/>
                            <Span>杰瑞</Span>
                            <LineBreak/>
                            <Hyperlink>唐老鸭</Hyperlink>
                            <LineBreak/>
                            <Bold>米老鼠</Bold>
                            <LineBreak/>
                            <Underline>维尼</Underline>
                            <LineBreak/>
                            <Italic>跳跳虎</Italic>
                            <LineBreak/>
                            <Bold>喜羊羊</Bold>
                        </TextBlock.Inlines>
                    </TextBlock>
                </DataTemplate>
            </HubSection>
            <HubSection Header="PreventKeyboardDisplayOnProgrammaticFocus">
                <!--PreventKeyboardDisplayOnProgrammaticFocus属于文本输入类控件的属性-->
                <!-- PreventKeyboardDisplayOnProgrammaticFocus 属性:当通过编程方式在文本框上设置焦点时,是否不显示屏幕触摸键盘-->
                <DataTemplate>
                    <TextBox PreventKeyboardDisplayOnProgrammaticFocus="True"/>
                </DataTemplate>
            </HubSection>
            <HubSection Header="IsTextSelectionEnabled SelectionHighlightColor">
                <!--文本显示类控件和文本输入类控件都有SelectionHighlightColor属性-->
                <!--文本显示类控件有IsTextSelectionEnabled属性,文本输入类控件则没有-->
                <!--IsTextSelectionEnabled设置文本是否能被选中-->
                <!--SelectionHighlightColor设置选中部分背景呈现什么颜色,注意不是选中的文本颜色-->
                <DataTemplate>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>
                        <TextBlock Grid.Row="0" FontSize="30" Text="文本能被选中" IsTextSelectionEnabled="True">
                            <TextBlock.SelectionHighlightColor>
                                <SolidColorBrush Color="Green"/>
                            </TextBlock.SelectionHighlightColor>
                        </TextBlock>
                        <TextBlock Grid.Row="1" FontSize="30" Text="文本不能被选中" IsTextSelectionEnabled="False">
                            <TextBlock.SelectionHighlightColor>
                                <SolidColorBrush Color="Green"/>
                            </TextBlock.SelectionHighlightColor>
                        </TextBlock>
                        <!--TextBox不存在IsTextSelectionEnabled属性-->
                        <TextBox Grid.Row="2" Text="文本能被选中(默认能)">
                            <TextBox.SelectionHighlightColor>
                                <SolidColorBrush Color="Red"/>
                            </TextBox.SelectionHighlightColor>
                        </TextBox>
                    </Grid>
                </DataTemplate>
            </HubSection>
            <HubSection Header="PlaceholderText--预文本显示">
                <!--控件 ComboBox, PasswordBox, RichEditBox, SearchBox, TextBox有PlaceholderText属性-->
                <!--PlaceholderText属性是文本输入类控件的属性-->
                <DataTemplate>
                    <TextBox PlaceholderText="预填充文本" Paste="TextBox_Paste" />
                </DataTemplate>
            </HubSection>
            <HubSection Header="TextTrimming--文本修整">
                <!--TextTrimming是文本显示类控件的属性-->
                <!--这边注意第三个和第四个的区别即可,第三个最小单位是单词,第四个最小单位是字符-->
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <TextBlock Text="chang zeyamei xin yuanjieyi" FontSize="30" Width="200" TextTrimming="None" />
                        <TextBlock Text="chang zeyamei xin yuanjieyi" FontSize="30" Width="200" TextTrimming="Clip"/>
                        <TextBlock Text="chang zeyamei xin yuanjieyi" FontSize="30" Width="200" TextTrimming="WordEllipsis"/>
                        <TextBlock Text="chang zeyamei xin yuanjieyi" FontSize="30" Width="200" TextTrimming="CharacterEllipsis"/>
                    </StackPanel>
                </DataTemplate>
            </HubSection>
            <HubSection Header="TextTrapping--文本换行">
                <!--文本显示类控件和文本输入类控件都具备TextTrapping属性-->
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <TextBlock Text="song daocaicaizi" FontSize="24" Width="100" TextWrapping="NoWrap"/>
                        <TextBlock Text="song daocaicaizi" FontSize="24" Width="100" TextWrapping="Wrap"/>
                        <TextBlock Text="song daocaicaizi" FontSize="24" Width="100" TextWrapping="WrapWholeWords"/>
                    </StackPanel>
                </DataTemplate>
            </HubSection>
            <HubSection>
                <!--控件 ComboBox, Slider, DatePicker, TimePicker, TextBox, PasswordBox, RichEditBox
                增加了 Header 属性和 HeaderTemplate 属性-->
                <!--Header不能命中测试,只能写文本-->
                <!--HeaderTemplate能命中测试(就像下面的button,可以有点击事件一样),并且在其DataTemplate中可以写任何xaml-->
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <TextBox Header="标题" />
                        <TextBox>
                            <TextBox.HeaderTemplate>
                                <DataTemplate>
                                    <Button Content="标题" Click="Button_Click" />
                                </DataTemplate>
                            </TextBox.HeaderTemplate>
                        </TextBox>
                    </StackPanel>
                </DataTemplate>
            </HubSection>
        </Hub>
    </Grid>
</Page>


运行截图:(这边挑选几张比较有特点并且结果很有对比性的截图)

                            

                              

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值