powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WebBrowser с биндингом подвешивает интерфейс, если пдф-файл большого размера
2 сообщений из 2, страница 1 из 1
WebBrowser с биндингом подвешивает интерфейс, если пдф-файл большого размера
    #38938824
monstrilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть WebBrowser, есть пдф-ка на 400 страниц, весит 230 метров. Если задать путь к файлу прямо в кзамле, то все ок, ничего не тормозит. Вот так.

Код: xml
1.
<WebBrowser Name="_pdfViewer" Source="D:/pdf/LargeFile.pdf"/>



Но я не могу задать путь статически, путь будет меняться, поэтому мне нужен Binding . Я использую такой Behavior . И вот когда я задаю путь через биндинг, то интерфейс подвисает на 2-3 минуты. С файлами меньших размеров (страниц на 50-100) проблем не возникает. Я пока точно не выяснил при каком количестве страниц или при каком размере файла начинаются тормоза. Но, имхо это и не существенно, файл то я тестировал один и тот же. Существенно понять почему через Binding тормозит.

Код: xml
1.
2.
<WebBrowser Name="_pdfViewer" 
            Behaviors:WebBrowserUtility.BindableSource="{Binding FilePath}"/>



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
public static class WebBrowserUtility
{
    public static readonly DependencyProperty BindableSourceProperty =
        DependencyProperty.RegisterAttached("BindableSource", typeof(String), typeof(WebBrowserUtility), new UIPropertyMetadata(null, BindableSourcePropertyChanged));

    public static String GetBindableSource(DependencyObject obj)
    {
        return (String)obj.GetValue(BindableSourceProperty);
    }

    public static void SetBindableSource(DependencyObject obj, String value)
    {
        obj.SetValue(BindableSourceProperty, value);
    }

    public static void BindableSourcePropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
    {
        var browser = o as WebBrowser;
        if (browser == null) return;
        var uri = e.NewValue as String;

        browser.Source = !String.IsNullOrEmpty(uri) ? new Uri(uri) : null;
    }
}
...
Рейтинг: 0 / 0
WebBrowser с биндингом подвешивает интерфейс, если пдф-файл большого размера
    #38938848
monstrilla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос снят, я ошибся. Пути были разные, один (в кзамле) был локальным, второй (через биндинг) вел на сетевой диск. Есесно он качается по сети, вот и вся проблема
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WebBrowser с биндингом подвешивает интерфейс, если пдф-файл большого размера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]