Hello World
Spiga

WPF/E CTP Quick Start - 第七部分:文本(翻译)

2006-12-12 00:51 by 老赵, 4099 visits

TextBlock元素能使您在WPF/E内容中添加文本。这篇文档描述了使用TextBlock元素的方式。

这篇文档包含了以下部分:

 

TextBlock元素

如果您想为WPF/E控件添加文本的话,则需要创建一个TextBlock元素,并把文本内容添加在<TextBlock>标签之间。下面的示例使用了一个TextBlock用于显示一些文本。

<Canvas
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   
    <TextBlock>hello world!</TextBlock>
</Canvas>

重新开始查看内容

 

常用TextBlock属性

除了作为UIElement所具有的属性,例如ClipOpacity之外,TextBlock元素还提供了更多的属性,包括以下几个:

  • FontSize:字体颜色,以“points”作为单位。
  • FontStyle:字体样式,可选项为Normal、Italic和Oblique。
  • FontWeight:字体分量。可选项为Thin、ExtraLight、Light、Normal、Medium、SemiBold、Bold、ExtraBold、Black和ExtraBlack。
  • FontFamily:字体的名称。
  • Forground:用于填充TextBlock内部的Brush。您可以使用实心颜色,渐变或者一幅图片来填充。您可以参考“绘图与填充”以获得更多信息。

下面的例子展示了这些属性的使用效果:

<Canvas
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <TextBlock FontSize="40"
        FontFamily="Georgia"
        FontStyle="Italic" FontWeight="Bold"
        Canvas.Top="20" Canvas.Left="20">

        Hello world!

        <TextBlock.Foreground>
            <LinearGradientBrush>
              <GradientStop Color="SlateBlue" Offset="0.0" />
              <GradientStop Color="Black" Offset="1.0" />
            </LinearGradientBrush>
        </TextBlock.Foreground>
    </TextBlock>
</Canvas>

重新开始查看内容

 

Run元素

您可以在同一个TextBlock内使用Run元素来混合多种字体。Run具有和TextBlock相同的字体属性,尽管它不能使用Canvas.LeftCanvas.Top属性来定位。下面的示例使用了一个Run元素来改变TextBlock内一部分文字的大小。

<Canvas
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   
    <TextBlock>
        Hello <Run FontSize="30">world</Run>
    </TextBlock>
</Canvas>

重新开始查看内容

 

指定多种字体

并不是每一台机器上都有所有的字体。FontFamily属性支持使用多种字体,当第一种字体不存在时,将会应用之后的字体设置。而“Portable User Interface”字体在任何机器上都会得到支持。下面的例子展示了不同的FontFamily设置:

<Canvas
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   
    <TextBlock FontFamily="Arial, Times New Roman"
        Text="Hello World" FontSize="20"/>
    <TextBlock FontFamily="Times New Roman, Arial" Canvas.Top="40"
        Text="Hello World" FontSize="20"/>
    <TextBlock FontFamily="Portable User Interface" Canvas.Top="80"
        Text="Hello World" FontSize="20"/>
</Canvas>

重新开始查看内容

 

下面该做什么呢?

在下一部分“媒体(音频和视频)”中,您会了解MediaElement对象的使用方式,您可以使用它来播放媒体文件。

Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名赵劼(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Add your comment

13 条回复

  1. 木野狐
    *.*.*.*
    链接

    木野狐 2006-12-12 01:12:00

    呵呵,和 HTML 标签越来越像了。微软最终的策略可能就是逐步取代 HTML,建立新一代 WEB 描述语言的标准。

  2. Cat Chen
    *.*.*.*
    链接

    Cat Chen 2006-12-12 01:14:00

    通常这类文章是不是就是所谓的阅读量growing steadily的那种?可能一开始大家都没时间仔细读,因为还没有需要入手去学,然后真正需要的时候就会回头看了。

  3. 老赵
    admin
    链接

    老赵 2006-12-12 01:40:00

    @木野狐
    HTML应该还是主流,WPF/E只是辅助,现在的WPF/E功能还不足以承受太多……

  4. 老赵
    admin
    链接

    老赵 2006-12-12 01:41:00

    @Cat Chen
    这个我倒没有多想,至少我觉得这片文章的生命期不会长,受“CTP”所限,呵呵。

  5. Cat Chen
    *.*.*.*
    链接

    Cat Chen 2006-12-12 11:15:00

    @Jeffrey Zhao
    不过CTP到RTM的变动枚Atlas那么大吧?

  6. 老赵
    admin
    链接

    老赵 2006-12-12 17:29:00

    @Cat Chen
    只能说“我觉得”不会吧。
    Atlas我现在可以理解它的情况了。因为当时的CTP实在问题太多,牵一发就会动全身,所以来了一次彻底的大换血。

  7. firefight[未注册用户]
    *.*.*.*
    链接

    firefight[未注册用户] 2007-01-16 11:22:00

    好像中文的显示有问题,不知道大家试过没有?

  8. 老赵
    admin
    链接

    老赵 2007-01-16 12:27:00

    @firefight
    试试看全部使用utf-8?

  9. firefight[未注册用户]
    *.*.*.*
    链接

    firefight[未注册用户] 2007-01-17 08:33:00

    试过了,从HTML,XAML到JS全部改成UTF-8,还是方框显示。
    我在SDK DOCUMENT中找到一个Glyph对象,其中有一个UnicodeString
    属性,不知道是否针对中文等字体使用的,但在文档中没有详细的说明,google了一把,也没有找到例子。

  10. 老赵
    admin
    链接

    老赵 2007-01-17 09:30:00

    @firefight
    现在您遇到的问题具体是什么呢?

  11. firefight[未注册用户]
    *.*.*.*
    链接

    firefight[未注册用户] 2007-01-17 13:47:00

    很简单,就是将TEXTBLOCK中的中文显示出来,例如:
    <TextBlock x:Name="Desc" FontSize="18" >中文</TextBlock>


    <TextBlock x:Name="Desc" Text="中文" />

  12. 阿慧南
    *.*.*.*
    链接

    阿慧南 2007-03-14 22:09:00

    都安装了为什么还显示:
    You must install "WPF/E" (codename) December 2006 CTP to view this page:

  13. 一笑[未注册用户]
    *.*.*.*
    链接

    一笑[未注册用户] 2007-03-26 14:41:00

    安装了2007的FEB版,在加载Image的时候无法显示图片,是不是一个BUG啊

发表回复

登录 / 登录并记住我 ,登陆后便可删除或修改已发表的评论 (请注意保留评论内容)

昵称:(必填)

邮箱:(必填,仅用于Gavatar

主页:(可选)

评论内容(大于5个字符):

  1. Your Name yyyy-MM-dd HH:mm:ss

使用Live Messenger联系我