0

WPF で、XPS ファイルの FixedPage のマークアップをContentプロパティを持つコントロール (例Button.Content = XamlReader.Load(<FixedPage markup>)) に渡そうとしました。

FixedPage マークアップの例:

<FixedPage Width="816" Height="1056" xmlns="http://schemas.microsoft.com/xps/2005/06" xml:lang="und">
    <Path Data="M 115.52,132.48 L 704.64,132.48 704.64,908.96 115.52,908.96 z" Clip="M 0,132.32 L 0,908.8 816,908.8 816,132.32 z">
        <Path.Fill>
            <ImageBrush ImageSource="/Documents/1/Resources/Images/1.JPG" Viewbox="0,0,809.333,1066.67" TileMode="None" ViewboxUnits="Absolute" ViewportUnits="Absolute" Viewport="115.52,132.48,589.12,776.48" />
        </Path.Fill>
    </Path>
</FixedPage>

コントロールは、FixedPage マークアップで参照されているリソースを取得できませんでした。

ImageSource="/Documents/1/Resources/Images/1.JPG"

しかし、"c:\1.jpg"ImageSourceのようなローカル パス ファイルに変更し、リソース ファイルを同じ場所に配置すると、コントロールは FixedPage マークアップを表示できるようになります。

私の質問は、FixedPage マークアップの変更を避けるために、コントロールがリソースの相対 URI を保持しながら FixedPage を表示する方法はありますか? メモリ内の XPS ファイルの構造をマッピングし、?への呼び出し中にクラスBaseUriによって FixedPage マークアップの を設定するように これは可能ですか?ParserContextXamlReader.Load()

4

1 に答える 1

0

おそらくそうではありません。ImageBrush が PackageStore と連携できる場合でも、URI の形式が正しくありません。パッケージ ストアに XPS ドキュメントのルートがありません。

于 2009-03-30T21:25:46.170 に答える