2016/12/31

外部ファイル指定

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 件のコメント :

コメントを投稿