Как использовать разметку FixedPage в элементе управления Content Model? - PullRequest
0 голосов
/ 16 января 2009

В WPF я попытался передать разметку FixedPage XPS-файла элементу управления, обладающему свойством 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"

Но если я заменим ImageSource на файл локального пути, например "c: \ 1.jpg" , и поместу файл ресурсов в то же место, элемент управления сможет отображать FixedPage наценка.

У меня вопрос: есть ли способ для элемента управления отображать FixedPage, сохраняя относительный URI ресурса, чтобы избежать изменения разметки FixedPage? Как сопоставить структуру файла XPS в памяти, а затем установить BaseUri разметки FixedPage классом ParserContext во время вызова XamlReader.Load()? Это возможно?

1 Ответ

0 голосов
/ 31 марта 2009

Наверное, нет. Даже если ImageBrush может работать с PackageStore, URI искажен; в хранилище пакетов отсутствует корень XPS-документа.

...