在此整理一下 Silverlight 1.0 用于显示中文字的几种解决方案,以下是解决方案架构图。
在上面的架构图中,我们可以看到显示中文的途径有三大类,分别是文字物件、绘图物件与图片档三种,然而这三种方式有着截然不同特性与处理议题,会对您的 Silverlight 程式的设计与执行有着显着的影响,让我们先来瞭解其个别内容,最后再来针对此三种方案进行初步的比较,中文字解决方案架构图说明如下:
(一)文字物件
Silverlight 用来直接显示文字的物件有 Glyphs 与 TextBlock,然而此二者有者相当不同的特性,说明如下:
Glyphs
Glyphs 显示中文字时,会以非同步的方式从 Web 伺服器下载完整的字型档,但其中最大的困扰是 Glyphs 下载整个字型档会造成网路频宽的爆增,而过大的下载位元则是 Internet
范例一 使用预设的 Glyphs 显示中文字(完整 TTF 字型档下载)
本范例将示范如何运用预设的 Glyphs 物件来显示中文字,其最关键点在于指定字型档所在的网路位置给 FontUri 属性即可。请参考 GlyphsTTF.html 及 GlyphsTTF.xaml 程式,以下为 GlyphsTTF.xaml 程式码:
GlyphsTTF.xaml
以下是引用片段: <Canvas xmlns=" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <Canvas Name="myCanvas" Background="LightBlue" Width="600" Height="400" MouseLeftButtonDown="handleMouseUp"> <!--Glyphs1--> <Glyphs FontUri = "http://localhost/ChineseFont/fonts/CURLZ___.TTF" FontRenderingEmSize = "100" UnicodeString = "Silverlight" Fill = "Black" OriginX = "0" OriginY = "100"> </Glyphs> <!--Glyphs2--> <Glyphs FontUri = "http://localhost/ChineseFont/fonts/MSJH.TTF" FontRenderingEmSize = "100" UnicodeString = "正黑體" Fill = "Red" OriginX = "0" OriginY = "200" > </Glyphs> <!--Glyphs3--> <Glyphs FontUri = "http://localhost/ChineseFont/fonts/KAIU.TTF" FontRenderingEmSize = "100" UnicodeString = "楷書體" Fill = "Black" OriginX = "0" OriginY = "300"> </Glyphs> </Canvas> </Canvas> |
完成后请执行 GlyphsTTF.html 程式,执行结果如下图。
表面上 Glyphs 显示中