Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.90/67: Рейтинг темы: голосов - 67, средняя оценка - 4.90
Newbie4
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 11
1

Создание графических Desktop-приложений на C# для windows. Как начать?

19.02.2016, 15:30. Просмотров 12184. Ответов 33
Метки нет (Все метки)

Приветствую всех!

Изучаю C# самостоятельно, по Шилдту. Но у него рассматривается только консоль. Я же хочу научиться делать полноценные desktop приложения.

Я начал искать литературу по WPF, но наступил какой-то затык.

Мак-Дональд М. - Windows Presentation Foundation в .NET 3.5 с примерами на C# 2008 (2-е издание) - 2008 - книга явно не для новичка.


Дейтел - Как программировать на Visual C# 2012. Там про визуальность приложений вообще минимум (Windows Forms, страниц 100, не больше)

Крис Андерсон - Как программировать на Visual C# 2012. Вроде неплохая книга, но... Я ее как-то неправильно применяю. В Visual Studio 2015 у меня не запустился ни один пример из книги. Куча ошибок и баста.

Вот например программа:

C#
1
2
3
4
5
6
7
8
9
10
11
using System.Windows;
using System;
class Program {
[STAThread]
static void Main() {
Application app = new Application();
Window w = new Window();
w.Title = «Hello World»;
app.Run(w);
}
}
Копирую в Visual Studio 2015 (раздел XAML) и.... куча ошибок

Создание графических Desktop-приложений на C# для windows. Как начать?


Может я что-то не так делаю или эта книга описывает нечто другое, отличное от того, что я ищу?

Подскажите, пожалуйста, как начать изучение создания графических Desktop-приложений для Windows?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2016, 15:30
Ответы с готовыми решениями:

Какие ЯП рекомендует Майкрософт для написания desktop-ных GUI приложений для Windows?
Как, например, обстоят дела с написанием десктопных GUI приложений для Windows на языке C#,...

С чего начать создание приложений для wp 8.1?
Объясните пожалуйста с чего начать создание приложений на вп8,1? На каком языке лучше писать на с++...

Создание графических приложений
Ув.Форумчане, Очень нужно узнать информацию!Есть задача написать программу в среде разработке...

Создание графических приложений на C++
Здраствуйте! Хочу немного разобратся в том, что мне нужно, чтоб писать графические, желательно ...

Почему нету проекта приеложения для графических приложений (gui)? как исправить
Установил qt 5.1.1 все вроде правильно, но не отображаются шаблоны для создания приложения....

33
insite2012
Модератор
Эксперт .NET
4886 / 3838 / 1097
Регистрация: 12.10.2013
Сообщений: 11,101
Записей в блоге: 2
19.02.2016, 16:10 2
Цитата Сообщение от Newbie4 Посмотреть сообщение
как начать изучение создания графических Desktop-приложений для Windows?
Для обучения сначала научитесь делать программы на WinForms, а потом уже переходите к WPF.
1
kotelok
147 / 136 / 74
Регистрация: 08.08.2014
Сообщений: 463
19.02.2016, 16:16 3
Newbie4
В VisualStudio создайте новый проект типа "WPF Application". Получится простое приложение с одним главным окном, который можно будет сразу же собрать и запустить. Там же можно будет открыть окно в дизайнере, посмотреть его XAML-код и внести какие-нибудь изменения. При этом среда сама сгенерирует код метода 'main', инициализации и запуска. Потом уже, когда хоть немного освоитесь, будет проще разобраться как всё это внутри устроено.
0
novikov.ea
1282 / 904 / 323
Регистрация: 10.06.2011
Сообщений: 1,656
19.02.2016, 16:20 4
Литература по WPF
Я лично читал только книгу МакДональда. Не сказал бы что там пишется что-то непонятное и сложное.
Из приведённого Вами кода я вижу, что это код для консольного приложения, которое создаёт приложение WPF, окно WPF и отображает его.
Естественно данный код нужно писать не в xaml файл, а в cs-файл. В xaml файл нужно писать xaml код.

Мне нравится вот этот сайт. Здесь есть и книга Троелсена, и книга МакДональда с пояснениями/примерами/дополнениями автора сайта.
Мне лично кажется, что книга МакДональда как раз для новичка по технологии WPF. В ней нет многих очень многих тонкостей по работе с WPF, о которых я узнал от других людей, с форумов или по собственной практике.
Если Вы считаете, что книга МакДональда сложна, быть может, Вам нужно укрепить свои знания в языке C#?
1
19.02.2016, 16:20
Newbie4
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 11
19.02.2016, 16:29  [ТС] 5
insite2012, Я сначала думал Windows Forms осваивать, но там литературы еще меньше.

kotelok,

Там же можно будет открыть окно в дизайнере, посмотреть его XAML-код и внести какие-нибудь изменения.
Носом по клаве постучать? Я вообще не понимаю что там написано, куда уж изменения вносить?

novikov.ea, спасибо за ссылки.

Но... C# я только начал учить. Учу его по Шилдту, разбираюсь там с операторами, литералами и прочим. Учить я его начал с целью создавать Desktop-приложения для Windows. Но я обнаружил, что у Шилдта рассматривается исключительно консоль, а создание оконных приложений осуществляется технологиями, которые он вообще не затрагивает. В связи с чем я хочу понять как создавать Desktop-приложения. Я вообще на правильном пути?

МакДональд пишет может и правильно, но уж явно не для новичков. Вот например:

Наличие мощной видеокарты не дает абсолютной гарантии, что вы получите мак-
симальную, с аппаратной поддержкой производительность на WPF. Программное обес-
печение также играет важную роль. Например, WPF не может обеспечить аппаратного
ускорения на видеокартах, если используются устаревшие драйверы. (Если у вас ус-
тановлена устаревшая видеокарта, такие драйверы, скорее всего, будут единственно
доступными.) WPF также обеспечивает более высокую производительность в среде опе-
рационной системы Windows Vista, где может воспользоваться преимуществами новой
модели дисплейных драйверов Windows Vista ( Windows Vista Display Driver Model —
WDDM). WDDM предлагает несколько важных усовершенствований по сравнению с
Windows XP Display Driver Model (XPDM). Что более важно, WDDM позволяет заплани-
ровать несколько операций GPU сразу и отображать страницы памяти видеокарты на
нормальную системную память, если вы израсходовали всю память видеокарты.
В качестве главного эмпирического правила: WPF предоставляет некоторого рода
аппаратное ускорение всем драйверам WDDM (Windows Vista) и драйверам XPDM
(Windows XP), созданным после ноября 2004 г., когда Microsoft издала новые руководства
по разработке драйверов. Конечно, уровень поддержки отличается. Когда запускается
инфраструктура WPF, она оценивает вашу видеокарту и присваивает ей рейтинг от 0
до 2, как описано во врезке “Уровни WPF”.
Это на каком языке вообще написано?


Из приведённого Вами кода я вижу, что это код для консольного приложения, которое создаёт приложение WPF, окно WPF и отображает его.
Вот я создал элемент Button и назначил этот код этому элементу:

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
32
33
34
35
36
37
38
39
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
 
namespace WpfApplication8
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void button_Click(object sender, RoutedEventArgs e)
        {
            
                Application app = new Application();
                Window w = new Window();
                w.Title = «Hello World»;
                app.Run(w);
            
        }
    }
    }
}
Все равно не работает, выдает 6 ошибок

Создание графических Desktop-приложений на C# для windows. Как начать?

Как запустить Hello World? Такое ощущение, что я не понимаю чего-то очень простого и очень очевидного.
0
insite2012
Модератор
Эксперт .NET
4886 / 3838 / 1097
Регистрация: 12.10.2013
Сообщений: 11,101
Записей в блоге: 2
19.02.2016, 16:30 6
Цитата Сообщение от Newbie4 Посмотреть сообщение
думал Windows Forms осваивать, но там литературы еще меньше.
Программирование с использованием Microsoft Windows Forms. 2006. Петцольд.Ч
Гуглите.
1
Ev_Hyper
Заблокирован
19.02.2016, 16:44 7
Цитата Сообщение от insite2012 Посмотреть сообщение
Для обучения сначала научитесь делать программы на WinForms, а потом уже переходите к WPF.
Зачем?

Цитата Сообщение от novikov.ea Посмотреть сообщение
Я лично читал только книгу МакДональда. Не сказал бы что там пишется что-то непонятное и сложное.
Согласен.

Цитата Сообщение от Newbie4 Посмотреть сообщение
insite2012, Я сначала думал Windows Forms осваивать, но там литературы еще меньше.
отдельная литература по WinForm вообще не нужна.
0
baliar
109 / 80 / 32
Регистрация: 10.08.2014
Сообщений: 420
Завершенные тесты: 1
19.02.2016, 16:44 8
Посмотрите видео урок Deffazze по созданию приложения на основе паттерна MVP. Я думаю, Вы станете лучше ориентироваться в этой теме. А использование паттерна придаёт уверенности в правильности своих действий .
0
insite2012
Модератор
Эксперт .NET
4886 / 3838 / 1097
Регистрация: 12.10.2013
Сообщений: 11,101
Записей в блоге: 2
19.02.2016, 16:53 9
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
Зачем?
WPF, таки-тормознут. Если нужен функционал с минимальным интерфейсом (и быстро) - WinForm самое то.
Цитата Сообщение от Ev_Hyper Посмотреть сообщение
отдельная литература по WinForm вообще не нужна.
Я сам так думал. А начав читать книгу, понял что ошибался. Там много чего полезного есть, что часто помогает.
0
Newbie4
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 11
19.02.2016, 17:04  [ТС] 10
insite2012,

Я ее тоже смотрел и пробовал примеры из нее. И примеры не работают.

Например вот:

C#
1
2
3
4
5
6
7
8
class FirstConsoleProgram
 
{
public static void Main ()
{
System.Console.WriteLine ("Hello, .NET Console");
}
}
Вот что получается:
Создание графических Desktop-приложений на C# для windows. Как начать?



И все. Как сделать, чтобы программа запускалась - не пойму и все тут.
0
novikov.ea
1282 / 904 / 323
Регистрация: 10.06.2011
Сообщений: 1,656
19.02.2016, 17:08 11
Цитата Сообщение от Newbie4 Посмотреть сообщение
Это на каком языке вообще написано?
Этот раздел сам вообще пропустил))) Я бы советовал начать с пункта Архитектура WPF и Иерархия классов

Но на вашем месте я бы сначала прочитал вначале книгу Троелсена. Так как вижу, что вы не очень хорошо знаете язык. Поэтому WPF на данный момент вам кажется сверх сложной технологией. Соорудите фундамент из знаний, а затем встаньте на следующий уровень и пробуйте изучать новые более сложные технологии.
То, что Вы сейчас пытаете слёту освоить WPF, конечно, похвально. Но, возможно, что для Вас это окажется попыткой научиться пилотировать истребителем после нескольких часов игры в ИЛ-2 Штурмовик
0
insite2012
Модератор
Эксперт .NET
4886 / 3838 / 1097
Регистрация: 12.10.2013
Сообщений: 11,101
Записей в блоге: 2
19.02.2016, 17:09 12
Цитата Сообщение от Newbie4 Посмотреть сообщение
Как сделать, чтобы программа запускалась - не пойму и все тут.
Newbie4, значит не внимательно что-то прочитали. У меня его проекты отлично работают. Нет, есть конечно кое-где глюки, но в основном все работает как надо.
Вот пример как у вас.
0
Миниатюры
Создание графических Desktop-приложений на C# для windows. Как начать?  
novikov.ea
1282 / 904 / 323
Регистрация: 10.06.2011
Сообщений: 1,656
19.02.2016, 17:10 13
Цитата Сообщение от Newbie4 Посмотреть сообщение
Как сделать, чтобы программа запускалась - не пойму и все тут
Чтобы программа просто запустилась достаточно создать новый пустой проект (консольного приложения), (проект Windows Forms) или (Проект WPF)
0
insite2012
Модератор
Эксперт .NET
4886 / 3838 / 1097
Регистрация: 12.10.2013
Сообщений: 11,101
Записей в блоге: 2
19.02.2016, 17:11 14
Цитата Сообщение от Newbie4 Посмотреть сообщение
И примеры не работают
Как я и сказал. Самая первая сверху ошибка у вас на скрине все говорит. А вы о неработающих примерах)))
У вас одна фигурная скобка пропущена, разве не видно? Даже просто по симметрии это заметно.
0
Vigelforts
141 / 117 / 26
Регистрация: 07.12.2014
Сообщений: 371
19.02.2016, 17:40 15
Я думаю Вам всё таки надо повременить с GUI и разобраться в самом языке, пользуясь консолью. Отсутствие базы не даёт Вам понять WPF и WinForms. Не спешите.С GUI всегда успеете))
0
Psilon
Master of Orion
Эксперт .NET
6038 / 4892 / 903
Регистрация: 10.07.2011
Сообщений: 14,477
Записей в блоге: 5
Завершенные тесты: 4
19.02.2016, 17:54 16
Цитата Сообщение от insite2012 Посмотреть сообщение
WPF, таки-тормознут. Если нужен функционал с минимальным интерфейсом (и быстро) - WinForm самое то.
Энивей он быстрее и во многом лучше винформ. Хотя он конечно ужасен. Но винформы это вообще кошмар.

Newbie4, если вы хотите научиться формошлепствовать - вперед покорять винформы или WPF. Если же хочется научиться писать нормальные программы, или там игры - то берется консоль и изучается ПРОГРАММИРОВАНИЕ, а не то, какой текстбокс лучше подходит для ввода цифр.
0
insite2012
Модератор
Эксперт .NET
4886 / 3838 / 1097
Регистрация: 12.10.2013
Сообщений: 11,101
Записей в блоге: 2
19.02.2016, 18:09 17
Цитата Сообщение от Psilon Посмотреть сообщение
винформы это вообще кошмар
Ну что сказать, каждому свое) Меня пока они устраивают. Если инструмент решает все поставленные задачи, то можно им пользоваться. Если перестанет-будем менять инструмент)))
Цитата Сообщение от Psilon Посмотреть сообщение
берется консоль и изучается ПРОГРАММИРОВАНИЕ
А с этим полностью согласен. Не зря авторы (такие как Шилдт, Троелсен) сознательно или все показывают в консоли, или почти все.
0
Newbie4
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 11
19.02.2016, 20:54  [ТС] 18
Цитата Сообщение от insite2012 Посмотреть сообщение
Как я и сказал. Самая первая сверху ошибка у вас на скрине все говорит. А вы о неработающих примерах)))
У вас одна фигурная скобка пропущена, разве не видно? Даже просто по симметрии это заметно.
Каюсь, пропустил, когда для форума набирал. Но это не отменяет того, что я не могу это запустить в графическом режиме.

Цитата Сообщение от insite2012 Посмотреть сообщение
Newbie4, значит не внимательно что-то прочитали. У меня его проекты отлично работают. Нет, есть конечно кое-где глюки, но в основном все работает как надо.
Вот пример как у вас.

уважаемый insite2012

Я пытаюсь запустить эту программу в оконном режиме. А вы показываете пример того, как она работает в консольном режиме. В консольном режиме я понимаю как запустить программу, а в оконном - нет.

Цитата Сообщение от novikov.ea Посмотреть сообщение
Чтобы программа просто запустилась достаточно создать новый пустой проект (консольного приложения), (проект Windows Forms) или (Проект WPF)
Этот пункт я выполнил.

А дальше что? Вот добавил я кнопку в форму и хочу ей назначить некое действие. Например знак сложения. Как это сделать? Я перехожу в конструктор и там кнопке надо что-то прописать. Что ей можно прописать? Как это прописывается? Я не могу найти литературу, где это объясняется. А ту литературу, что нашел - примеры не запускаются в Visual Studio 2015.

Цитата Сообщение от Psilon Посмотреть сообщение
Newbie4, если вы хотите научиться формошлепствовать - вперед покорять винформы или WPF. Если же хочется научиться писать нормальные программы, или там игры - то берется консоль и изучается ПРОГРАММИРОВАНИЕ, а не то, какой текстбокс лучше подходит для ввода цифр.

Я конечно же хочу научиться писать программы. Но вот изучая того же Шилдта я приобретаю некоторые навыки, которые хочу опробовать на практике. Например, хочу написать простой калькулятор круга. Оконное приложение, а не консольное. Ввожу в поле ввода данных его диаметр, а программа в ответ - его площадь и длину дуги.

Как это сделать на программном уровнея понимаю - потому что почитал Шилдта.

А как написать десктопное приложение - все, баста! Информационный вакуум, который я пытаюсь изо всех сил преодолеть.

Добавлено через 11 минут
Вот, опять пытаюсь освоить то, что пишет Петцольд в книге "Программирование с использованием MS WindowsForms.

Вот фрагмент книги:
Создание графических Desktop-приложений на C# для windows. Как начать?


Создаю этот же код в программе:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using System.Drawing;
using System.Windows.Forms;
 
class FormProperties
{
    public static void Main ()
    {
        Form frm = new Form();
        frm.Text = "My Winforms Program";
        frm.Width *= 2;
        Application.Run(frm);
    }
 
}
И вот что я имею на выходе:

Создание графических Desktop-приложений на C# для windows. Как начать?

3 ошибок компилирования на 16 строк.

Я очень, очень хочу понять почему это все не работает и как мне научиться делать графические приложения.

Сам язык я конечно буду учить и дальше по C#. Но без применения полученных мной знаний на практике я не вижу смысла в этом. А чтобы применить эти знания, мне надо разобраться с тем, как это вывести в графическом режиме на экран.
0
Someone007
3179 / 2363 / 1054
Регистрация: 09.05.2015
Сообщений: 5,867
Завершенные тесты: 1
19.02.2016, 21:02 19
Создайте новый проект Windows Forms и в файл Program.cs поместите код тот что выше. Вы явно там что-то намудрили с другими файлами в текущем проекте...
0
Newbie4
0 / 0 / 0
Регистрация: 06.02.2016
Сообщений: 11
19.02.2016, 21:09  [ТС] 20
Someone007, Все примеры я создаю в новых проектах.
0
19.02.2016, 21:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2016, 21:09

Современная платформа для Desktop приложений
Добрый день, Я года 4 назад писал на Delphi/C++ Builder. Последнее время занимался занимался...

Блок за 35к для графических приложений
Здравствуйте, в железе практически не разбираюсь, так что надеюсь на Вашу помощь. В общем ситуация...

Где можно почитать про создание приложений для Windows
Доброго дня! Изучил книгу Шилдт C# 4.0 полное руководство. Книга толковая, но язык преподносится...


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

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

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