Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Dj_SheLL
168 / 73 / 10
Регистрация: 13.02.2010
Сообщений: 306
#1

WPF и WinForms в одном проекте: Могут ли они при этом взаимодействовать между собой

09.01.2012, 12:30. Просмотров 2016. Ответов 7
Метки нет (Все метки)

Собственно сабж.
Можно ли в одном солюшене использовать две формы - и WPF и WinForms?Могут ли они при этом взаимодействовать между собой?
Если да,то какой изначально проект нужно создавать - для WinForms или для WPF?
Может у кого уже есть опыт?
Просто хочу создать приложение состоящее из двух форм:
- настройки (WinForms)
- виджет на рабочий стол (WPF)
Заранее спасибо за ответы!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2012, 12:30
Ответы с готовыми решениями:

Использование контрола WPF в проекте WinForms
Добрый день! Появилась потребность использовать один элемент из WPF в проекте...

При добавлении нескольких RadioButton на форму они сами по себе стали между собой связаны
Здравствуйте. Суть проблемы в том,что внезапно при добавлении нескольких...

Сколькими способами наборщики могут разделить задачу между собой?
Два наборщика должны набрать 16 страниц текста. Сколькими способами они могут...

Определить, сколькими способами ребята могут разделить грибы между собой
(сочетания с повторениями) Четверо ребят собрали в лесу 30 белых грибов....

Сколькими способами 3 человека могут разделить между собой 6 одинаковых яблок
Сколькими способами 3 человека могут разделить между собой 6 одинаковых яблок?...

7
sau
1787 / 1511 / 233
Регистрация: 22.07.2011
Сообщений: 5,725
Завершенные тесты: 1
09.01.2012, 15:49 #2
Можно ли в одном солюшене использовать две формы
- можно
Могут ли они при этом взаимодействовать между собой
- Для твоей задачи можно заюзать средства межпроцессорного взаимодействия (Rpc канал, WCF и т.п)
то какой изначально проект нужно создавать
- без разницы, потом добавляешь нужный проект к существующему солюшену.
1
Dj_SheLL
168 / 73 / 10
Регистрация: 13.02.2010
Сообщений: 306
09.01.2012, 16:25  [ТС] #3
Цитата Сообщение от sau Посмотреть сообщение
- Для твоей задачи можно заюзать средства межпроцессорного взаимодействия (Rpc канал, WCF и т.п)
Ну я же могу обратиться к форме,как к классу?
И в принципе как понимаю,если есть отдельный класс (class.cs) с методами (допустим математическими какими-нибудь),то я могу с двух этих форм (WinForms и WPF) запросто к этому классу обратиться и к конкретному методу.
0
sau
1787 / 1511 / 233
Регистрация: 22.07.2011
Сообщений: 5,725
Завершенные тесты: 1
09.01.2012, 16:30 #4
то я могу с двух этих форм (WinForms и WPF) запросто к этому классу обратиться и к конкретному методу.
- ну тогда у тебя этот класс должен быть в отдельной сборке, которую подключаешь к обоим проектам.

Но , как я понял, ты хочешь что бы приложение настроек напрямую влияло на приложение виджета.
- это либо межпроцессное взаимодействие, либо общий источник данных.
1
SpiritRI
79 / 79 / 10
Регистрация: 20.05.2011
Сообщений: 145
09.01.2012, 16:42 #5
Не пойму! Почему бы окно настроек не сделать тоже на WPF? И весь геморрой отпадёт!
0
I2um1
Злой няш
1405 / 1103 / 374
Регистрация: 05.04.2010
Сообщений: 1,949
09.01.2012, 16:50 #6
SpiritRI, да ладно, когда маразм крепчает - это круто:
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
25
26
27
28
29
30
31
using System;
using System.Windows;
using System.Windows.Forms;
 
class Program
{
    [STAThread]
    static void Main()
    {
        System.Windows.Forms.Application.Run(
            new MyForm { Text = "Форма", Width = 200, Height = 100 });
        Console.ReadKey();
    }
}
 
class MyForm : Form
{
    Window window;
 
    public MyForm()
    {
        window = new Window { Title = "Окно", Width = 200, Height = 100 };
        window.Show();
        this.FormClosed += new FormClosedEventHandler(MyFormClosed);
    }
 
    void MyFormClosed(object sender, FormClosedEventArgs e)
    {
        window.Close();
    }
}
Это к примеру консольное приложение, которое открывает форму, которая в свою очередь открывает окно. Причем, если к примеру закрыть форму, то закроется и окно.
А вообще, если серьезно, ничего геморройного в этом не вижу, что Window, что Form - все те же обычные классы.

Цитата Сообщение от Dj_SheLL Посмотреть сообщение
то я могу с двух этих форм (WinForms и WPF) запросто к этому классу обратиться и к конкретному методу
Самый простой способ даже в том же проекте - сделать статический класс.
2
sau
1787 / 1511 / 233
Регистрация: 22.07.2011
Сообщений: 5,725
Завершенные тесты: 1
09.01.2012, 16:57 #7
Можно ли в одном солюшене использовать две формы
Для начала нужно разобраться, тут речь о двух разных формах в одном проекте, или два разных проекта в одном решении )

Если 1-й вариант , то делаем как сказал Blood-Angel., хотя тогда вопрос нафига это нужно.
Если 2-й вариант, когда есть два разных приложения, одно на WPF а другое на WinFroms, то тут уже межпроцессное взаимодействие.

З.Ы Если речь о сайдбар-виджете , то там свое API для вызова окна настроек.
1
Dj_SheLL
168 / 73 / 10
Регистрация: 13.02.2010
Сообщений: 306
09.01.2012, 17:23  [ТС] #8
Цитата Сообщение от sau Посмотреть сообщение
Для начала нужно разобраться, тут речь о двух разных формах в одном проекте, или два разных проекта в одном решении )
Две формы в рамках одного проекта.

Цитата Сообщение от sau Посмотреть сообщение
Если 1-й вариант , то делаем как сказал Blood-Angel., хотя тогда вопрос нафига это нужно.
Мне проще настройки сделать в простой форме WinForms именно в этом проекте.

Цитата Сообщение от sau Посмотреть сообщение
З.Ы Если речь о сайдбар-виджете , то там свое API для вызова окна настроек.
Нет!Не о сайдбар-виджете.Свой виджет для своего приложения.

Цитата Сообщение от SpiritRI Посмотреть сообщение
Не пойму! Почему бы окно настроек не сделать тоже на WPF? И весь геморрой отпадёт!
Уже ответил выше,просто для WinForms уже всё готово в принципе.Поэтому смысла переделывать на WPF я не вижу,только лишняя трата времени.

Цитата Сообщение от Blood-Angel Посмотреть сообщение
Самый простой способ даже в том же проекте - сделать статический класс.
Ну я так и предполагал.Спасибо большое за пример!
0
09.01.2012, 17:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2012, 17:23

Найти наибольшее из 3-ех чисел(числа между собой могут быть равны)
Добрый день,что нужно добавить в программу,чтобы учитывался и тот вариант,что...

Имеется 4 карты, необходимо чтобы они перемещались между собой
Задание было такое. имеется 4 карты, необходимо что бы они перемещались между...

3. Сколькими способами 3 человека могут разделить между собой 6 одинаковых яблок, 1 апельсин, 1 сливу, 1 лимон
3. Сколькими способами 3 человека могут разделить между собой 6 одинаковых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru