Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
Заблокирован

C# vs XAML

24.12.2015, 10:40. Показов 2289. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
мне кажется или WPF это уже даже нефига не C#, а скорее один гольный XAML? везде где смотрю примеры всюду все на XAML, даже вместо событий C#-овых - триггеры XAML, а есть что почитать по XAML конкретно?

Добавлено через 1 минуту
и еще на C# вроде тоже можно конечно WPF писать, но как выбрать в каких местах лучше юзать C# а в каких XAML?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2015, 10:40
Ответы с готовыми решениями:

Передача обьекта xaml в другой обьект xaml
есть главное окно xaml <Window x:Class="test.MainWindow" ...

Динамическое добавление XAML в XAML
Перешел с Winows Forms на WPF буквально 6 часов назад если смотреть на Time Line, меня мучает вопрос, во всех статьях о визуальных...

Взаимодействие MainWindow.xaml.cs <->App.Xaml.cs
Я попробовал и, безусловно, оценил удобство и простоту использования WPF, поначалу казавшийся мне сложной конструкцией. Я, конечно,...

14
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18307 / 14231 / 5368
Регистрация: 17.03.2014
Сообщений: 28,903
Записей в блоге: 1
24.12.2015, 10:54
Volrajas, тебе кажется. WPF это XAML + ЯП (C#, VB.NET и т.д.). XAML предназначен для описания UI, C# для программирования логики приложения. Исходя из этого и выбирай.
0
Заблокирован
24.12.2015, 11:00  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
XAML предназначен для описания UI, C# для программирования логики приложения.
а как же триггеры?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18307 / 14231 / 5368
Регистрация: 17.03.2014
Сообщений: 28,903
Записей в блоге: 1
24.12.2015, 11:01
Volrajas, на триггерах всю логику не напишешь
0
Эксперт .NET
 Аватар для novikov.ea
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
24.12.2015, 11:06
Интерфейс пишется на XAML, логика приложения - на C#.
Цитата Сообщение от Volrajas Посмотреть сообщение
а есть что почитать по XAML конкретно?
Например, вот здесь
Цитата Сообщение от Volrajas Посмотреть сообщение
каких местах лучше юзать C# а в каких XAML?
Интерфейс пишется на XAML, логика приложения - на C#. Правильный подход в WPF - использовать паттерн MVVM (Model-View-ViewModel). В MVVM программа делится на 3 части, где Model - бизнес-логика приложения, View - интерфейс, ViewModel хранит данные, отображаемые в интерфейсе, и реагирует на действия пользователя.
Вот небольшой пример на MVVM
Вложения
Тип файла: rar WpfApplication1.rar (65.9 Кб, 20 просмотров)
1
Эксперт .NET
 Аватар для novikov.ea
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
24.12.2015, 11:09
Цитата Сообщение от Volrajas Посмотреть сообщение
а как же триггеры?
Триггеры прописываются в интерфейсе. Они позволяют изменять интерфейс с зависимости от каких-либо событий. Триггеры не позволяют управлять самой логикой приложения
0
0 / 0 / 0
Регистрация: 23.12.2015
Сообщений: 6
24.12.2015, 11:35
сам писал на XAML больше 5 лет. Сейчас от него начинают потихоньку отказываться в связи с тем, что мелкомягкие слабо его поддерживают, а серьезные приложения на XAML жрут дофига оперативки.
В моей конторе все переводят на "трехзвенку" - (серв базы данных+бизнес серв+тонкий клиент)
в десктопных приложениях тоже вместо XAML используем связку HTML+CSS+JS+awesome. Биндинг там тож прекрасно работает, оперативы меньше жрет, да и в целом плюсов очень много.

так что рекомендую
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
24.12.2015, 13:21
Цитата Сообщение от skyman000 Посмотреть сообщение
в десктопных приложениях тоже вместо XAML используем связку HTML+CSS+JS+awesome. Биндинг там тож прекрасно работает, оперативы меньше жрет, да и в целом плюсов очень много.
skyman000, можно увидеть простенькие примеры или ссылки на инфу?
0
0 / 0 / 0
Регистрация: 23.12.2015
Сообщений: 6
24.12.2015, 14:36
вот самый простой пример

win форма с одной кнопкой и стандартным объектом webBrowser

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
40
41
42
43
44
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Security.Permissions;
 
 
namespace www
{
    [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.IsWebBrowserContextMenuEnabled = false;
            webBrowser1.ScriptErrorsSuppressed = true;
            webBrowser1.ObjectForScripting = this;
            webBrowser1.DocumentText =
                "<html><head><script>function test(message) { alert(message); }</script></head><body>" +
                "<button style='border:0px;' onclick="window.external.Test('вызов C# метода из JS')">HTML кнопка</button>" +
                "</body></html>";
        }
        public void Test(String message)
        {
            MessageBox.Show(message);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Document.InvokeScript("test", new String[] { "вызов JS метода из C# 11" });
        }
    }
}
по умолчанию в webBrowser объектах используется движок IE. Но при желании можно подключить пару dll и использовать движки chrome или firefox.
В win8 приложениях кстати используется похожая технология, где на весь экран разворачивается окно браузера и вырисовывает весь GUI
0
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,051
Записей в блоге: 1
24.12.2015, 17:28
Цитата Сообщение от novikov.ea Посмотреть сообщение
Правильный подход в WPF - использовать паттерн MVVM
Правильный? Если у меня пару-тройку красивых кнопок, которые выполняют бизнес логику, накой мне целые модели того чего нет создавать?
0
Заблокирован
25.12.2015, 02:48
Volrajas, советую посмотреть в сторону F# + WPF. Проще будет понять MVVM, так как там нельзя просто клацнуть по кнопке и получить обертку для обработки события.

Цитата Сообщение от skilllab Посмотреть сообщение
Правильный? Если у меня пару-тройку красивых кнопок, которые выполняют бизнес логику, накой мне целые модели того чего нет создавать?
skilllab, Весь код можно и в main запихнуть - только смысл?
0
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,051
Записей в блоге: 1
25.12.2015, 08:36
Ev_Hyper, в смысле "смысл"?
Рекомендуемый MVVM, с этим я согласен. но вот с "правильным" - нет.
0
 Аватар для LeniumSoft
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
25.12.2015, 09:22
Цитата Сообщение от skilllab Посмотреть сообщение
Правильный? Если у меня пару-тройку красивых кнопок, которые выполняют бизнес логику, накой мне целые модели того чего нет создавать?
Хорошие программисты всегда используют паттерны проектирования!
Даже если на форме всего одна кнопка, она будет забиндена на команду ViewModel-и.
Это вопрос качества кода. При командной разработке иной подход неприемлем!

Вас никто не заставляет следовать правилам MVVM. Вы можете себе говнокодить сколько угодно! Только не показывайте это никому!
0
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
25.12.2015, 21:29
Цитата Сообщение от LeniumSoft Посмотреть сообщение
Хорошие программисты всегда используют паттерны проектирования!
У меня другое мнение:
Хорошие программисты используют инструменты и библиотеки в зависимости от задачи. И не делают лишнюю работу, где это совершенно не нужно (лишние затраты времени, объемы кода, и скорости работы из выросшей сложности архитектуры).
Все решения должны приниматься в контексте задачи. Это касается и фреймворков, которые реализуют петтерны (где-то достаточно MVVM Light, Caliburn, а где то лучше использовать MEF)
2
 Аватар для skilllab
296 / 236 / 58
Регистрация: 03.02.2011
Сообщений: 2,051
Записей в блоге: 1
25.12.2015, 21:57
Цитата Сообщение от LeniumSoft Посмотреть сообщение
Вы можете себе говнокодить сколько угодно!
да так и делаю
Цитата Сообщение от LeniumSoft Посмотреть сообщение
Только не показывайте это никому!
и так тоже))) тока потом продаю.
Цитата Сообщение от kenny69 Посмотреть сообщение
используют инструменты и библиотеки в зависимости от задачи
Вот, вменяемый пост.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.12.2015, 21:57
Помогаю со студенческими работами здесь

С++ и Xaml
Как обращаться к компонентам, типа texBox, по имени через цикл. У меня есть TB1, TB2, ... , TBn и если их много, то перебирать каждый не...

C# и XAML
Здравствуйте! У меня есть код StackPanel, точнее много похожих StackPanel. Как сделать так, чтобы по if (num == 1) (по значению...

с XAML и без
Всем привет. Столкнулся с такой штукой: в проекте используется xaml для создания интерфейса. Пробую сделать стили в xml, присвоил style...

Button в XAML
Здравствуйте! Возникла проблема с нажатием на кнопку. Вот её код: &lt;Button BorderBrush=&quot;Transparent&quot;...

image в xaml
Подскажите как сохранить картинку в XAML а то при сохранение там тока ссылка


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru