xamlで <Image Source="a.png" />のように指定するとexeに埋め込まれているリソースの指定になりますのでスキンでは使えません(Visual Studio上では使えるように見えるので注意)
外部ファイルを読み込む場合は
<Image Source="file:///c:/a.png" />
<Image Source="http://www.___.com/a.png" />
<Image Source="pack://siteoforigin:,,,/Skin/a.png" />
のようにするのですが file:やhttp:を許すと危険すぎるので xeKeyのスキンでは使えなくしています
pack://siteoforiginは本来zeKey.exeからの相対パス指定ですが 扱いづらいので
zeKeyでは "pack://siteoforigin:,,,/Skin/" を該当スキンのフルパスと解釈します(スキンフォルダではありません そのスキンのあるフォルダです)
必ず/Skin/と表記する必要があります
該当スキンのあるフォルダ以下しかアクセスできません
<Image Source="pack://siteoforigin:,,,/a.png" />
<Image Source="pack://siteoforigin:,,,/../a.png" />
<Image Source="pack://siteoforigin:,,,/skin/a.png" />
<Image Source="pack://siteoforigin:,,,/Skin/../a.png" />
<Image Source="pack://siteoforigin:,,,/Skin/../a/a.png" />
すべてエラー
<Image Source="pack://siteoforigin:,,,/Skin/a.png" />
<Image Source="pack://siteoforigin:,,,/Skin/a/a.png" />
OK
<Image Source="pack://siteoforigin:,,,/Skin/../Skin/a.png" />
無意味だがOK
siteoforiginの意味が違うので気持ち悪いのですが スキン作成の簡便さとスキンフォルダを変更可能にするため 現時点ではこれがよいのかなと思っています
0 件のコメント :
コメントを投稿