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 回答