Могут ли гиперссылки работать в файлах XPS, отображаемых в элементах управления WPF? - PullRequest
5 голосов
/ 29 декабря 2010

Я пытаюсь создать справочную систему для программного приложения.Интерфейс написан на WPF.У меня есть файл XPS (созданный из документа Word), к которому я хочу получить доступ из приложения.Файл XPS содержит гиперссылки, которые перенаправляют в файл XPS.Я могу отобразить файл с помощью элемента управления DocumentViewer, но гиперссылки не работают.(Когда я просматриваю тот же файл XPS в средстве просмотра XPS, гиперссылки работают.) Я новичок в WPF, поэтому я могу что-то пропустить, но я пытался заставить это работать уже неделю, и хотяЯ учусь по пути, я никуда не пойду с задачей.Я был бы очень признателен за любую помощь.-Dave

Ответы [ 2 ]

2 голосов
/ 18 апреля 2016

Добавьте следующий код в свой код для обработки гиперссылок вручную:

public MainWindow() {
    xpsViewer.AddHandler(Hyperlink.RequestNavigateEvent, new RequestNavigateEventHandler(OnRequestNavigate));
}

private void OnRequestNavigate(object sender, RequestNavigateEventArgs e) {
    // URI contains the page number (e.Uri = "...#PG_7_LNK_2")
    int pageNumber;
    if (int.TryParse(Regex.Match(e.Uri.ToString(), @"(?<=PG_)[0-9]+").Value, out pageNumber)) {
        xpsViewer.GoToPage(pageNumber);
    }
}
0 голосов
/ 04 мая 2012

Я знаю, что это старый вопрос, но всем, кто ищет ответ, я думаю, что проблема в том, что гиперссылки работают только внутри контейнера навигации - Frame или NavigationWindow, поэтому вы должны поместить DocumentViewer в контейнер навигации.

...