Spiga

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

2006-12-12 00:51 by Jeffrey Zhao, 2822 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对象的使用方式,您可以使用它来播放媒体文件。

Add your comment

15 条回复

  1. #1楼 木野狐      2006-12-12 01:12
    呵呵,和 HTML 标签越来越像了。微软最终的策略可能就是逐步取代 HTML,建立新一代 WEB 描述语言的标准。
     回复 引用 查看   
  2. #2楼 Cat Chen      2006-12-12 01:14
    通常这类文章是不是就是所谓的阅读量growing steadily的那种?可能一开始大家都没时间仔细读,因为还没有需要入手去学,然后真正需要的时候就会回头看了。
     回复 引用 查看   
  3. #3楼[楼主] Jeffrey Zhao      2006-12-12 01:40
    @木野狐
    HTML应该还是主流,WPF/E只是辅助,现在的WPF/E功能还不足以承受太多……
     回复 引用 查看   
  4. #4楼[楼主] Jeffrey Zhao      2006-12-12 01:41
    @Cat Chen
    这个我倒没有多想,至少我觉得这片文章的生命期不会长,受“CTP”所限,呵呵。
     回复 引用 查看   
  5. #5楼 Cat Chen      2006-12-12 11:15
    @Jeffrey Zhao
    不过CTP到RTM的变动枚Atlas那么大吧?
     回复 引用 查看   
  6. #6楼[楼主] Jeffrey Zhao      2006-12-12 17:29
    @Cat Chen
    只能说“我觉得”不会吧。
    Atlas我现在可以理解它的情况了。因为当时的CTP实在问题太多,牵一发就会动全身,所以来了一次彻底的大换血。
     回复 引用 查看   
  7. #7楼 firefight[未注册用户]2007-01-16 11:22
    好像中文的显示有问题,不知道大家试过没有?
     回复 引用   
  8. #8楼[楼主] Jeffrey Zhao      2007-01-16 12:27
    @firefight
    试试看全部使用utf-8?
     回复 引用 查看   
  9. #9楼 firefight[未注册用户]2007-01-17 08:33
    试过了,从HTML,XAML到JS全部改成UTF-8,还是方框显示。
    我在SDK DOCUMENT中找到一个Glyph对象,其中有一个UnicodeString
    属性,不知道是否针对中文等字体使用的,但在文档中没有详细的说明,google了一把,也没有找到例子。
     回复 引用   
  10. #10楼[楼主] Jeffrey Zhao      2007-01-17 09:30
    @firefight
    现在您遇到的问题具体是什么呢?
     回复 引用 查看   
  11. #11楼 firefight[未注册用户]2007-01-17 13:47
    很简单,就是将TEXTBLOCK中的中文显示出来,例如:
    <TextBlock x:Name="Desc" FontSize="18" >中文</TextBlock>


    <TextBlock x:Name="Desc" Text="中文" />
     回复 引用   
  12. #12楼 阿慧南      2007-03-14 22:09
    都安装了为什么还显示:
    You must install "WPF/E" (codename) December 2006 CTP to view this page:
     回复 引用 查看   
  13. #13楼 一笑[未注册用户]2007-03-26 14:41
    安装了2007的FEB版,在加载Image的时候无法显示图片,是不是一个BUG啊
     回复 引用   
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 589439 CR8nt/ouaJc=