powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF из Form
8 сообщений из 8, страница 1 из 1
WPF из Form
    #36829757
testing22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда запускаем новый поток для UI WPF из WPF проекта, там делаем через Диспетчер, типа такого:

this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()
{
button1.Content = "111";
});

Не могу понять, как из проекта на Form создать окно WPF в НОВОМ потоке?

Если без нового потока, то работает код:

private void Form1_Load(object sender, EventArgs e)
{
MainWindow MainWindow1 = new MainWindow();
MainWindow1.Visibility = System.Windows.Visibility.Visible;
}

А вот как это сделать в новом потоке?
Нижеприведенный код выдает исключение - Сообщение об исключении = "Невозможно загрузить файл или сборку \"PresentationFramework.Seven Breeze, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\" или один из зависимых от них компонентов. Не удается найти указанный файл.", Тип исключения = "System.IO.FileNotFoundException"
:

private void Form1_Load(object sender, EventArgs e)
{
Thread t1 = new Thread(WPF);
t1.SetApartmentState(ApartmentState.STA);
t1.Start();
}

public void WPF()
{
MainWindow MainWindow1 = new MainWindow();
MainWindow1.Visibility = System.Windows.Visibility.Visible;
}
...
Рейтинг: 0 / 0
WPF из Form
    #36835407
testing22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
совсем нет вариантов?
...
Рейтинг: 0 / 0
WPF из Form
    #36837000
testing22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема больше неактуальна, тему можно удалить
...
Рейтинг: 0 / 0
WPF из Form
    #36839031
goodron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
написал бы что ли, как решил...
...
Рейтинг: 0 / 0
WPF из Form
    #36841387
userdab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мда =(, может тут потом кто ответит что-нибудь
...
Рейтинг: 0 / 0
WPF из Form
    #36841906
testing22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://eprystupa.wordpress.com/2008/07/28/running-wpf-application-with-multiple-ui-threads/
...
Рейтинг: 0 / 0
WPF из Form
    #36851794
testing22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема решилась, но не полностью. Дело в том, что в моем случае, окно WPF в новом потоке должно создаваться из плагина (DLL), подключаемого другой программой. Ее разработчик рекомендовал использовать в качестве окна WPF, не WPF Window, а WPF User Control Library.

Моя прошлая ошибка, из-за которой я не мог отобразить окно WPF в новом потоке, оказалась в немного отличающемся механизме работы метода .Show() и установки свойства .Visibility = System.Windows.Visibility.Visible;. Только .Show() позволял отобразить окно WPF.

Создавая проект WPF User Control Library вместо проекта WPF, я перехожу c объекта Window на объект UserControl. Но, как я понял, класс System.Windows.Controls, от которого наследуется UserControl, не поддерживает метода .Show, то есть я не могу отобразить его этим методом. В итоге, я так и не вижу окна WPF в новом потоке...
...
Рейтинг: 0 / 0
WPF из Form
    #36861688
testing22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оказалось, проблема не в контроле (c User Control Library, то же самое, что и с Window)

Но проблема все еще не решена. Лог исключения выглядит так:

System.IO.IOException: Не удается найти ресурс "mainwindow.xaml".
в MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access)
в System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access)
в System.IO.Packaging.PackagePart.GetStream()
в System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
в Example.MainWindow.InitializeComponent()
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF из Form
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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