|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Нужно при старте WPF приложения показать окошко WinForm из библиотеки, и на основании введенных в него данных показать/непоказать уже главное WPF окно приложения. Вот не могу понять куда лучше приткнуть вызов окошка и обработку его данных. Пока додумался до того что создал класс, в котором определил Main() и указал его в свойствах проекта как входную точку. Подскажите как подобные штуки обычно делают по уму так сказать? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 17:19 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
да че, тут все просто. делаешь два exe. первый winforms без параметров второй wpf c параметром. вот ,чтобы wpf не запускали просто так, ему надо передать на вход ключ. этот ключ , как раз передаст winforms приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 17:29 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
В книге Макдональда про WPF подробно описаны возможности интеграции WPF и WinForms. Я сам это подробно не читал, но Вам может помочь. Предполагаю, что в методе main можно обычным образом показать WinForms-окно через ShowDialog(). Потом по результатам диалога запустить WPF-ное Application.Run(). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 17:40 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
AlexeiK, И в ВинФормс использовать Process.Start ? Не хотелось бы делить сборку. Как прилично сделать в одной сборке? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 17:41 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Алексей К...Предполагаю, что в методе main можно обычным образом показать WinForms-окно через ShowDialog(). Потом по результатам диалога запустить WPF-ное Application.Run(). Да вот таким путем и иду. Просто немного пугает меня то, что метод Main() студия заныкала в скрытые файлы. Я написал свой и из него вызываю уже по результатам диалога студийный App.Main(). Может какой-то есть общепринятый подход, а я пру против течения? (Пугает меня все таки немного этот WPF.) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 17:44 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
как это против течения? это ж лично твоя речка :) а течение тот кто платит. так что сразу поймешь, против или нет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 17:54 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
AlexeiK, Ну мне как начинающему хотелось бы следовать хорошим практикам. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 17:59 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Lexxxxx, то есть не хочешь думать сам, а хочешь заменить свою голову книжкой с практиками? это плохое направление. ошибка самый великий учитель. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 18:19 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
LexxxxxДа вот таким путем и иду. Просто немного пугает меня то, что метод Main() студия заныкала в скрытые файлы. Я написал свой и из него вызываю уже по результатам диалога студийный App.Main(). Может какой-то есть общепринятый подход, а я пру против течения? (Пугает меня все таки немного этот WPF.)Тоже использовал самописный main в ВПФ. Проблем не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 18:20 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
AlexeiK, Только вот желательно учится на чужих ошибках (которые и выражены в книжках, практиках и прочем). Зачем же топать по граблям если есть путеводители дорожкам между ними?! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 18:23 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Lexxxxx, эээ постой. никто еще не научился на чужих. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 18:36 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
LexxxxxПросто немного пугает меня то, что метод Main() студия заныкала в скрытые файлы зря пугает. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 20:58 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Изопропил, Может и зря, но как-то диковато для меня весь этот каркас выглядит. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 21:42 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
LexxxxxМожет и зря, но как-то диковато для меня весь этот каркас выглядит. один раз написать и разобраться(без каркаса) - и будет счастье ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2011, 23:24 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Изопропил, Под каркасом я имел в виду WPF Framework. Как-то все не так, как было в винформс, хотя некоторые общие моменты есть. Да плюс накладывается то, что я вообще в .NET не долго и еще далеко не во всем разобрался. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 00:06 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Lexxxxx, я понял о чём речь. Выбросьте App.xaml. очень грубо - Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 00:21 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Изопропил, System.Windows.Forms.Application.Run(new System.Windows.Forms.Form()); ИМНО крутовато. Я просто ShowDialog-ом обхожусь. App.xaml в общем-то не мешает так как в нем почти ничего нет, а вот сам класс Арр быть вроде обязан, ибо является основой модели WPF приложения. Или Вы имеете в виду что если удалить из проекта App.xaml (тут я понимаю нужно как-то обеспечить сохранность App.xaml.cs или еще как-то ввести в проект наследника Aplication?) то студия не будет генерировать App.g.cs и процедуру Main() можно будет написать в файле кода класса-наследника? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 01:00 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Изопропил, Кажется я сначала неправильно понял Ваше предложение. :) Ведь App.xaml и все что к нему студия нагенерила по большому счету не нужно, если в него не навешать каких нибудь своих ресурсов. А нет ли вероятности что потом мне нужен будет этот удаленный наследник Application? Ведь для чего-то в шаблон он включен. Для чего он? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 01:17 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
App.xaml удалять из проекта нельзя. Его обязательно надо создать вручную в рукописном main(). Не забыть добавить в App.xaml.cs дефолтный конструктор, вызывающий InitializeComponent(); ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 05:48 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
В классе Application оверрайдить OnStartup и в нем показать WinForms-форму через ShowDialog чем не вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 09:27 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Алексей К, Почему нельзя удалять App.xaml? Ведь можно в классе главного окна сделать метод Main(), в котором сделать Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Весь InitializeComponent() для класса Арр представляет собой this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative); и похоже не нужен при использовании Run(new MainWindow()). Почему его нельзя его удалять? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 09:59 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
sandyp, Результаты трудов винформ окошка надо передать в главное окно приложения, а его еще нету когда работает OnStartup. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 10:03 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Lexxxxx, Если пихать данные во viewmodel, то по идее это не проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 10:17 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
sandypLexxxxx, Если пихать данные во viewmodel, то по идее это не проблема. Честно говоря плаваю я во всех этих "viewmodel". Я бы сформулировал это так: при старте винформ окно вернет некоторый набор параметров, которые потом нужно передать модели данных для ее инициализации. Вот я и думаю передать их в главное окно, которое инициализирует модель и отобразит ее. Возможно это и не правильно, но я не знаю как правильнее. Подскажите, как надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 10:24 |
|
Правильно показать окно WinForms при старте.
|
|||
---|---|---|---|
#18+
Алексей КApp.xaml удалять из проекта нельзя. Его обязательно надо создать вручную в рукописном main(). Не забыть добавить в App.xaml.cs дефолтный конструктор, вызывающий InitializeComponent(); Надеюсь, это шутка. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2011, 11:09 |
|
|
start [/forum/topic.php?fid=21&msg=37541818&tid=1442058]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 319ms |
total: | 456ms |
0 / 0 |