在WPF中,我已经尝试将XPS文件的标记传递给具有Content
属性的控件(例如,Button.Content = XamlReader.Load(<FixedPage markup>)
)。
固定页面标记的示例:
<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"
但是,如果我将ImageSource
更改为本地路径文件,例如"c:1.jpg"并将资源文件放置在相同位置,则控件将能够显示FixedPage标记。
我的问题是,是否有一种方法可以让控件显示FixedPage,同时保留资源的相对URI,以避免修改FixedPage标记?像在内存中映射XPS文件的结构,然后在调用XamlReader.Load()时通过ParserContext类设置FixedPage标记的BaseUri。这种可能性存在吗?