Как создать внешний вид программы

В этой итерации мы улучшаем внешний вид приложения, изменяя эталонную страницу представления MVC по умолчанию и каскадную таблицу стилей ASP.NET MVC.

Создание приложения MVC ASP.NET управления контактами (C#)

В этой серии руководств мы создадим все приложение «Управление контактами» с начала до конца. Приложение Диспетчера контактов позволяет хранить контактные данные — имена, номера телефонов и адреса электронной почты — для списка людей.

Универсальный способ настройки внешнего вида WinForms приложения (на примере FAQ.Net)

После размещения первой статьи о своем приложении FAQ.Net (программа заметок под Windows), появились первые пользователи, для которых хочется дальше развивать свою программу для заметок.

Чтобы повысить интерес у пользователей, возникла идея повысить его привлекательность за счет настройки цвета и шрифта.

Требования к настройке внешнего вида приложения

  1. хранить и загружать свойства отдельных компонентов в XML-файле
  2. пользователь должен иметь простой инструмент по настройке внешнего вида
  3. список настраиваемых компонентов должен очень просто расширяться (одной строкой кода)
  4. при изменении значения свойства пользователь должен сразу видеть изменения на форме
  5. должна быть кнопка отмены, которая позволит вернуть все изменения назад
Читайте также:
Наиболее детальные полевые исследования которые проводят по жесткой программе

Результат работы

Окно настройки внешнего вида:

Уроки создания сайтов. Урок 2. Внешний вид программы Siteedit/

До и после настроек внешнего вида:

Для решения задачи необходимо

  1. использовать компонент PropertyGridEx, для отображения и изменения свойств компонентов
  2. создать класс CustomDesignControl для удобства хранения свойств в XML
  3. создать форму MainForm, на которой будем изменять внешний вид
  4. создать форму AppSettingsForm, на которой будем настраивать внешний вид MainForm
  5. создать класс SettingsXml для удобства работы с XML

Функция отмены изменений внешнего вида

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

public static class ControlExtensions < public static T Clone(T controlToClone) where T : Control < PropertyInfo[] controlProperties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance); T instance = Activator.CreateInstance(); RichTextBox rtb = new RichTextBox(); foreach (PropertyInfo propInfo in controlProperties) < if (propInfo.Name == «Parent») continue; if (propInfo.CanWrite) < if (propInfo.Name != «WindowTarget») < propInfo.SetValue(instance, propInfo.GetValue(controlToClone, null), null); >> > return instance; >

Скопировал код, убрал лишние свойства, которые не нужно сохранять, оставив цвета и шрифт.

Урок 2. Внешний вид программы. Создание нового проекта.


После проверки работы кода, сразу выяснились недостатки данного способа:

  1. используется приведение любого контрола к классу Control, а это означает, что половину свойств можно потерять (например, компонент DataGridView унаследован от класса Control, но имеет свой дополнительный набор свойств)
  2. при клонировании компонента некоторые свойства (например: цвет шрифта внутри ячейки DataGridView) не клонируются, а создают ссылки на клонируемый компонент (возможно, это потому, что используется свойство со своими внутренними свойствами и их нужно как-то по-другому обрабатывать).

DataGridView dgvClone = new DataGridView();

Безрезультатно, компонент не смог вернуть изменения обратно.

Читайте также:
Как записать программу с радио

Попробовал тогда само свойство создать оператором new и задать ему значение методом SetValue:

propInfo.SetValue(_controls[i], propInfo.GetValue(_controlsBeforeChange[i], null), null);

И этот способ не дал результата. При изменении значения свойства в одном компоненте, оно автоматически обновляется и в клонируемом компоненте.

Другие способы я больше не искал и сделал возврат изменений обычным перезапуском приложения с возможностью сохранения рабочего документа или отмены перезапуска. Это позволило значительно съэкономить память приложения, так как не нужно создавать клоны объектов.

Пример приложения с настройкой внешнего вида

На всякий случай, подготовил готовый код, на котором желающие смогут проверить и возможно доработать функцию отмены изменений внешнего вида без перезагрузки приложения и рассказать нам о проблеме в комментариях.
Нужно добиться, чтобы при нажатии на кнопку «Автотест» на компоненте DataGridView был серый фон и шрифт ячеек был мелкий.

Скачать Windows приложение FAQ.Net (бесплатно):

Вывод

Надеюсь, что во многих WinForms приложениях, благодаря этой статье, у конечного пользователя появится возможность настраивать интерфейс на свой вкус и цвет.

Источник: habr.com

Android. Меняем внешний вид приложения с помощью тем

Писать все на одно лицо приложение не очень то и хочется, хочется сделать уникально красивое и удобное, так чтобы с одного вида хотелось его использовать. Именно об этом и пойдет речь в данном уроке, а именно о создании своего стиля для приложения.

Шаг 1: Создание нового проекта

Создаем новое приложение в Intellij IDEA -> Android Module 4.3

Шаг 2: Меняем темную тему на светлую

Теперь давайте разберемся, что такое Темы.

Темы – это коллекция готовых стилей для приведения вашего приложения к одному виду с Android. Иными словами есть набор готовых тем которые вы можете применить к своему приложению.

Читайте также:
Как запустить программу через терминал visual studio

Как же это сделать? Первое что можно сделать это поменять к примеру темную тему на светлую. Сделать это можно добавив следующий атрибут в AndroidManifest, изначально он выглядит так:

По умолчанию у нас стоит темная тема, мы сейчас поставим светлую, для это добавим в AndroidManifest следующую строку:

В строке 10 мы говорим, что MainActivity будет иметь светлое оформление, вот такое:

И теперь если добавить кнопку то выглядеть она будет так:

Шаг 3: Создаем новое Activity

Теперь создадим новый layout:

Выглядеть новый layout будет так:

Теперь создадим новое Activity LastActivity:

И в AndroidManifest незабываем добавлять новые activity:

Шаг 4: Делаем переход на новое Activity

Теперь на добавленную кнопку на main.xml добавим обработчик на клик:

и укажем кнопки чтобы при клике выполнялся goToLastActivity() метод:

Теперь при клике на кнопку New Theme будет открываться новое Activity.

Шаг 5: Делаем с Activity Dialog

Давайте изменим новому Activity lastactivity.xml вид диалогового окна.

Для этого зайдите в AndroidManifest и в для нового Activity, а именно LastActivity установите следующую тему:

После этого мы получим следующий вид данного activity:

Шаг 6: Меняем иконку приложения

Для этого копируем новую иконку в папки drawable-hdpi, drawable-ldpi, drawable-mdpi, drawable-xhdpi для того чтобы эта иконка отображалась на любом размере дисплея.

Я взял такую картинку logo.png – 150х150:

Дальше в AndroidManifest нужно изменить эту строку, где вы должны указать имя вашей картинки:

И вот что у нас получилось:

Источник: devcolibri.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru