老赵点滴


  先做人,再做技术人员,最后做程序员。
  我的理想:“让外国人看中国人写的技术书籍和文章”。Try as I might
posts - 290, comments - 10769, trackbacks - 147, articles - 6
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

  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对象的使用方式,您可以使用它来播放媒体文件。

Feedback

#1楼    回复  引用  查看    

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

#2楼    回复  引用  查看    

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

#3楼 [楼主]   回复  引用  查看    

2006-12-12 01:40 by Jeffrey Zhao      
@木野狐
HTML应该还是主流,WPF/E只是辅助,现在的WPF/E功能还不足以承受太多……

#4楼 [楼主]   回复  引用  查看    

2006-12-12 01:41 by Jeffrey Zhao      
@Cat Chen
这个我倒没有多想,至少我觉得这片文章的生命期不会长,受“CTP”所限,呵呵。

#5楼    回复  引用  查看    

2006-12-12 11:15 by Cat Chen      
@Jeffrey Zhao
不过CTP到RTM的变动枚Atlas那么大吧?

#6楼 [楼主]   回复  引用  查看    

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

#7楼    回复  引用    

2007-01-16 11:22 by firefight [未注册用户]
好像中文的显示有问题,不知道大家试过没有?

#8楼 [楼主]   回复  引用  查看    

2007-01-16 12:27 by Jeffrey Zhao      
@firefight
试试看全部使用utf-8?

#9楼    回复  引用    

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

#10楼 [楼主]   回复  引用  查看    

2007-01-17 09:30 by Jeffrey Zhao      
@firefight
现在您遇到的问题具体是什么呢?

#11楼    回复  引用    

2007-01-17 13:47 by firefight [未注册用户]
很简单,就是将TEXTBLOCK中的中文显示出来,例如:
<TextBlock x:Name="Desc" FontSize="18" >中文</TextBlock>


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

#12楼    回复  引用  查看    

2007-03-14 22:09 by 阿慧南      
都安装了为什么还显示:
You must install "WPF/E" (codename) December 2006 CTP to view this page:

#13楼    回复  引用    

2007-03-26 14:41 by 一笑 [未注册用户]
安装了2007的FEB版,在加载Image的时候无法显示图片,是不是一个BUG啊

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-12-13 22:47 编辑过


相关链接: