Выбери любимый жанр
Выбрать книгу по жанру
Фантастика и фэнтези
- Боевая фантастика
- Героическая фантастика
- Городское фэнтези
- Готический роман
- Детективная фантастика
- Ироническая фантастика
- Ироническое фэнтези
- Историческое фэнтези
- Киберпанк
- Космическая фантастика
- Космоопера
- ЛитРПГ
- Мистика
- Научная фантастика
- Ненаучная фантастика
- Попаданцы
- Постапокалипсис
- Сказочная фантастика
- Социально-философская фантастика
- Стимпанк
- Технофэнтези
- Ужасы и мистика
- Фантастика: прочее
- Фэнтези
- Эпическая фантастика
- Юмористическая фантастика
- Юмористическое фэнтези
- Альтернативная история
Детективы и триллеры
- Боевики
- Дамский детективный роман
- Иронические детективы
- Исторические детективы
- Классические детективы
- Криминальные детективы
- Крутой детектив
- Маньяки
- Медицинский триллер
- Политические детективы
- Полицейские детективы
- Прочие Детективы
- Триллеры
- Шпионские детективы
Проза
- Афоризмы
- Военная проза
- Историческая проза
- Классическая проза
- Контркультура
- Магический реализм
- Новелла
- Повесть
- Проза прочее
- Рассказ
- Роман
- Русская классическая проза
- Семейный роман/Семейная сага
- Сентиментальная проза
- Советская классическая проза
- Современная проза
- Эпистолярная проза
- Эссе, очерк, этюд, набросок
- Феерия
Любовные романы
- Исторические любовные романы
- Короткие любовные романы
- Любовно-фантастические романы
- Остросюжетные любовные романы
- Порно
- Прочие любовные романы
- Слеш
- Современные любовные романы
- Эротика
- Фемслеш
Приключения
- Вестерны
- Исторические приключения
- Морские приключения
- Приключения про индейцев
- Природа и животные
- Прочие приключения
- Путешествия и география
Детские
- Детская образовательная литература
- Детская проза
- Детская фантастика
- Детские остросюжетные
- Детские приключения
- Детские стихи
- Детский фольклор
- Книга-игра
- Прочая детская литература
- Сказки
Поэзия и драматургия
- Басни
- Верлибры
- Визуальная поэзия
- В стихах
- Драматургия
- Лирика
- Палиндромы
- Песенная поэзия
- Поэзия
- Экспериментальная поэзия
- Эпическая поэзия
Старинная литература
- Античная литература
- Древневосточная литература
- Древнерусская литература
- Европейская старинная литература
- Мифы. Легенды. Эпос
- Прочая старинная литература
Научно-образовательная
- Альтернативная медицина
- Астрономия и космос
- Биология
- Биофизика
- Биохимия
- Ботаника
- Ветеринария
- Военная история
- Геология и география
- Государство и право
- Детская психология
- Зоология
- Иностранные языки
- История
- Культурология
- Литературоведение
- Математика
- Медицина
- Обществознание
- Органическая химия
- Педагогика
- Политика
- Прочая научная литература
- Психология
- Психотерапия и консультирование
- Религиоведение
- Рефераты
- Секс и семейная психология
- Технические науки
- Учебники
- Физика
- Физическая химия
- Философия
- Химия
- Шпаргалки
- Экология
- Юриспруденция
- Языкознание
- Аналитическая химия
Компьютеры и интернет
- Базы данных
- Интернет
- Компьютерное «железо»
- ОС и сети
- Программирование
- Программное обеспечение
- Прочая компьютерная литература
Справочная литература
Документальная литература
- Биографии и мемуары
- Военная документалистика
- Искусство и Дизайн
- Критика
- Научпоп
- Прочая документальная литература
- Публицистика
Религия и духовность
- Астрология
- Индуизм
- Православие
- Протестантизм
- Прочая религиозная литература
- Религия
- Самосовершенствование
- Христианство
- Эзотерика
- Язычество
- Хиромантия
Юмор
Дом и семья
- Домашние животные
- Здоровье и красота
- Кулинария
- Прочее домоводство
- Развлечения
- Сад и огород
- Сделай сам
- Спорт
- Хобби и ремесла
- Эротика и секс
Деловая литература
- Банковское дело
- Внешнеэкономическая деятельность
- Деловая литература
- Делопроизводство
- Корпоративная культура
- Личные финансы
- Малый бизнес
- Маркетинг, PR, реклама
- О бизнесе популярно
- Поиск работы, карьера
- Торговля
- Управление, подбор персонала
- Ценные бумаги, инвестиции
- Экономика
Жанр не определен
Техника
Прочее
Драматургия
Фольклор
Военное дело
Последние комментарии
Сергей2018-11-27
Не книга, а полная чушь! Хорошо, что чит
К книгеЯзык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 522
522
Изменить размер шрифта:
<DockPanel LastChildFill="True">
<ToolBar DockPanel.Dock="Top" Name="mainToolBar" Height="50">
</ToolBar>
<Canvas Background="LightBlue" Name="canvasDrawingArea"/>
</DockPanel>
picture
Заполните элемент
ToolBar
набором объектов RadioButton
, каждый из которых содержит объект специфического класса, производного от Shape
. Легко заметить, что каждому элементу RadioButton
назначается то же самое групповое имя GroupName
(чтобы обеспечить взаимное исключение) и также подходящее индивидуальное имя.<ToolBar DockPanel.Dock="Top" Name="mainToolBar" Height="50">
<RadioButton Name="circleOption" GroupName="shapeSelection"
Click="CircleOption_Click">
<Ellipse Fill="Green" Height="35" Width="35" />
</RadioButton>
<RadioButton Name="rectOption" GroupName="shapeSelection"
Click="RectOption_Click">
<Rectangle Fill="Red" Height="35" Width="35" RadiusY="10" RadiusX="10" />
</RadioButton>
<RadioButton Name="lineOption" GroupName="shapeSelection"
Click="LineOption_Click">
<Line Height="35" Width="35" StrokeThickness="10" Stroke="Blue"
X1="10" Y1="10" Y2="25" X2="25"
StrokeStartLineCap="Triangle" StrokeEndLineCap="Round" />
</RadioButton>
</ToolBar>
Как видите, объявление объектов
Rectangle
, Ellipse
и Line
в разметке XAML довольно прямолинейно и требует лишь минимальных комментариев. Вспомните, что свойство Fill
позволяет указать кисть для рисования внутренностей фигуры. Когда нужна кисть сплошного цвета, можно просто задать жестко закодированную строку известных значений, а соответствующий преобразователь типа сгенерирует корректный объект. Интересная характеристика типа Rectangle
связана с тем, что в нем определены свойства RadiusX
и RadiusY
, позволяющие визуализировать скругленные углы. (window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})Объект
Line
представлен своими начальной и конечной точками с использованием свойств X1
, Х2
, Y1
и Y2
(учитывая, что высота и ширина при описании линии имеют мало смысла). Здесь устанавливается несколько дополнительных свойств, которые управляют тем, как визуализируются начальная и конечная точки объекта Line
, а также настраивают параметры штриха. На рис. 26.1 показана визуализированная панель инструментов в визуальном конструкторе WPF среды Visual Studio.С помощью окна Properties (Свойства) среды Visual Studio создайте обработчик события
MouseLeftButtonDown
для Canvas
и обработчик события Click
для каждого элемента RadioButton
. Цель заключается в том, чтобы в коде C# визуализировать выбранную фигуру (круг, квадрат или линию), когда пользователь щелкает внутри Canvas
. Первым делом определите следующее вложенное перечисление (и соответствующую переменную-член) внутри класса, производного от Window
:public partial class MainWindow : Window
{
private enum SelectedShape
{ Circle, Rectangle, Line }
private SelectedShape _currentShape;
}
В каждом обработчике
Click
установите переменную-член currentShape
в корректное значение SelectedShape
:private void CircleOption_Click(object sender, RoutedEventArgs e)
{
_currentShape = SelectedShape.Circle;
}
private void RectOption_Click(object sender, RoutedEventArgs e)
{
_currentShape = SelectedShape.Rectangle;
}
private void LineOption_Click(object sender, RoutedEventArgs e)
{
_currentShape = SelectedShape.Line;
}
Посредством обработчика события
MouseLeftButtonDown
элемента Canvas
будет визуализироваться подходящая фигура (предопределенного размера) в начальной точке, которая соответствует позиции (х
, у
) курсора мыши. Ниже приведена полная реализация с последующим анализом:- Предыдущая
- 522/642
- Следующая

