powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Правильно показать окно WinForms при старте.
25 сообщений из 32, страница 1 из 2
Правильно показать окно WinForms при старте.
    #37541002
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно при старте WPF приложения показать окошко WinForm из библиотеки, и на основании введенных в него данных показать/непоказать уже главное WPF окно приложения. Вот не могу понять куда лучше приткнуть вызов окошка и обработку его данных. Пока додумался до того что создал класс, в котором определил Main() и указал его в свойствах проекта как входную точку. Подскажите как подобные штуки обычно делают по уму так сказать?
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541023
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да че, тут все просто.
делаешь два exe.
первый winforms без параметров
второй wpf c параметром.
вот ,чтобы wpf не запускали просто так, ему надо передать на вход ключ.
этот ключ , как раз передаст winforms приложение.
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541047
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В книге Макдональда про WPF подробно описаны возможности интеграции WPF и WinForms. Я сам это подробно не читал, но Вам может помочь.

Предполагаю, что в методе main можно обычным образом показать WinForms-окно через ShowDialog(). Потом по результатам диалога запустить WPF-ное Application.Run().
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541051
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK,

И в ВинФормс использовать Process.Start ? Не хотелось бы делить сборку. Как прилично сделать в одной сборке?
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541060
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К...Предполагаю, что в методе main можно обычным образом показать WinForms-окно через ShowDialog(). Потом по результатам диалога запустить WPF-ное Application.Run().
Да вот таким путем и иду. Просто немного пугает меня то, что метод Main() студия заныкала в скрытые файлы. Я написал свой и из него вызываю уже по результатам диалога студийный App.Main(). Может какой-то есть общепринятый подход, а я пру против течения? (Пугает меня все таки немного этот WPF.)
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541083
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как это против течения?
это ж лично твоя речка :) а течение тот кто платит. так что сразу поймешь, против или нет :)
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541096
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK,

Ну мне как начинающему хотелось бы следовать хорошим практикам. :)
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541152
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexxxxx,

то есть не хочешь думать сам, а хочешь заменить свою голову книжкой с практиками?
это плохое направление.
ошибка самый великий учитель.
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541159
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxДа вот таким путем и иду. Просто немного пугает меня то, что метод Main() студия заныкала в скрытые файлы. Я написал свой и из него вызываю уже по результатам диалога студийный App.Main(). Может какой-то есть общепринятый подход, а я пру против течения? (Пугает меня все таки немного этот WPF.)Тоже использовал самописный main в ВПФ. Проблем не было.
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541167
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiK,

Только вот желательно учится на чужих ошибках (которые и выражены в книжках, практиках и прочем). Зачем же топать по граблям если есть путеводители дорожкам между ними?! :)
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541200
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexxxxx,

эээ постой. никто еще не научился на чужих.
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541415
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxПросто немного пугает меня то, что метод Main() студия заныкала в скрытые файлы
зря пугает.
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541462
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

Может и зря, но как-то диковато для меня весь этот каркас выглядит.
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541576
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LexxxxxМожет и зря, но как-то диковато для меня весь этот каркас выглядит.
один раз написать и разобраться(без каркаса) - и будет счастье
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541595
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

Под каркасом я имел в виду WPF Framework. Как-то все не так, как было в винформс, хотя некоторые общие моменты есть. Да плюс накладывается то, что я вообще в .NET не долго и еще далеко не во всем разобрался.
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541611
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lexxxxx,

я понял о чём речь. Выбросьте App.xaml.

очень грубо -
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
[STAThread()]
public static void Main(){
//Forms			
System.Windows.Forms.Application.Run(new System.Windows.Forms.Form());
	
//WPF		
System.Windows.Application app= new System.Windows.Application();
app.Run(new System.Windows.Window());
}
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541647
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

System.Windows.Forms.Application.Run(new System.Windows.Forms.Form()); ИМНО крутовато. Я просто ShowDialog-ом обхожусь.

App.xaml в общем-то не мешает так как в нем почти ничего нет, а вот сам класс Арр быть вроде обязан, ибо является основой модели WPF приложения. Или Вы имеете в виду что если удалить из проекта App.xaml (тут я понимаю нужно как-то обеспечить сохранность App.xaml.cs или еще как-то ввести в проект наследника Aplication?) то студия не будет генерировать App.g.cs и процедуру Main() можно будет написать в файле кода класса-наследника?
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541656
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

Кажется я сначала неправильно понял Ваше предложение. :) Ведь App.xaml и все что к нему студия нагенерила по большому счету не нужно, если в него не навешать каких нибудь своих ресурсов. А нет ли вероятности что потом мне нужен будет этот удаленный наследник Application? Ведь для чего-то в шаблон он включен. Для чего он?
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541713
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
App.xaml удалять из проекта нельзя. Его обязательно надо создать вручную в рукописном main(). Не забыть добавить в App.xaml.cs дефолтный конструктор, вызывающий InitializeComponent();
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541782
sandyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В классе Application оверрайдить OnStartup и в нем показать WinForms-форму через ShowDialog чем не вариант?
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541813
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

Почему нельзя удалять App.xaml? Ведь можно в классе главного окна сделать метод Main(), в котором сделать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
class MainWindow
{
   static void Main()
    {
        System.Windows.Application app= new System.Windows.Application();
        app.Run(new MainWindow());
    }
}

Весь InitializeComponent() для класса Арр представляет собой this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative); и похоже не нужен при использовании Run(new MainWindow()). Почему его нельзя его удалять?
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541818
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sandyp,

Результаты трудов винформ окошка надо передать в главное окно приложения, а его еще нету когда работает OnStartup.
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541838
sandyp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lexxxxx,

Если пихать данные во viewmodel, то по идее это не проблема.
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541849
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sandypLexxxxx,

Если пихать данные во viewmodel, то по идее это не проблема.

Честно говоря плаваю я во всех этих "viewmodel". Я бы сформулировал это так: при старте винформ окно вернет некоторый набор параметров, которые потом нужно передать модели данных для ее инициализации. Вот я и думаю передать их в главное окно, которое инициализирует модель и отобразит ее. Возможно это и не правильно, но я не знаю как правильнее. Подскажите, как надо?
...
Рейтинг: 0 / 0
Правильно показать окно WinForms при старте.
    #37541937
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КApp.xaml удалять из проекта нельзя. Его обязательно надо создать вручную в рукописном main(). Не забыть добавить в App.xaml.cs дефолтный конструктор, вызывающий InitializeComponent();
Надеюсь, это шутка.
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Правильно показать окно WinForms при старте.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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