mikeo_410


Silverlightのフォントとイメージの検索


  XAMLに書かれた、フォントやイメージがどこから探されるのか試してみました。
  XPSファイル表示のためなので、パッケージ内での話です。

  左図のように、7A...03.odttf と logo.png ファイルをプロジェクトに追加して実験しました。

  XAMLは、以下のような記述になっています。
  Image の Source と Glyphs の FontUri にファイル名が記述されています。

  ビハインドコードは、自動生成されたままで、無修正です。

  1. <UserControl x:Class="sla_resourse_test1.MainPage"
  2.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  3.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  5.     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  6.     mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
  7.     <Grid x:Name="LayoutRoot">
  8.         <StackPanel>
  9.             <Image Source="logo.png"/>
  10.             <Canvas>
  11.                 <Glyphs Name="a0" Fill="#FF000000"
  12.                     FontUri="./7A286E23-70DE-6E97-4979-4C11EA154E03.odttf" 
  13.                     FontRenderingEmSize="14.04" StyleSimulations="BoldSimulation"
  14.                     OriginX="28.32" OriginY="51.504" UnicodeString="XPS"
  15.                     Indices=",70.085;,66.667;" xml:lang="en-US">
  16.                 </Glyphs>
  17.             </Canvas>
  18.         </StackPanel>
  19.     </Grid>
  20. </UserControl>

1.イメージ

  1. プロジェクトに追加したときは、「Resource」に設定される。
  2. Image の Source に "logo.png" と書いて問題なく表示される。
  3. コンテンツに変えても問題なく表示される。
    (コンテンツは独立したファイルとしてパッケージされる。)
  4. フォルダ(xxx)に移して、"xxx/logo.png" と、すれば、問題なく表示される。
  5. これは、コンテンツでも、Resource でもOK

2.フォント

  1. プロジェクトに追加したときは、「Resource」に設定される。
  2. この状態では、問題なく表示される。
  3. コンテンツにすると、ルートでもxxx/でも実行時にエラーとなる。
  4. Resourceなら、xxx/ に移してもOK


mikeo_410@hotmail.com