Практика «Рефакторинг» Скачайте архив с проектом Risovatel. Работайте в файле DrawingProgram.cs. Ваша задача привести код в этом файле в порядок. Для начала запустите эту программу. Должно появиться окно с изображением невозможного квадрата. Задание Переименуйте всё, что называется неправильно. Это можно делать двойным нажатием комбинации клавиш Ctrl+R (работает для VS и Rider). Исправьте форматирование кода. Частично с этим поможет комбинация клавиш: […]
Решено | Как связать TextBox и Label в двух окнах форм WPF?
Всем привет. Бывает для не которых задач необходимо передавать данные из одной формы в другую. Способов решения такой задачи достаточно много. Но я хотел именно показать как можно сделать практически всю логику вынеся в XAML разметку и как можно меньше использовать C#. И так я в своем примере покажу как можно из одной формы окна […]
Кисти. Градиент в WPF C#
Всем привет. В данной статье рассмотрим примеры того как используются градиентная заливка объектов. Но не много теории. Типы кистей Кисти заполняют области — будь то фон, передний план или граница элемента или штрих фигуры. Простейшим типом кисти является SolidColorBrush, которая рисует сплошным цветом. Типы кистей: LinearGradientBrush – линейный градиент. RadialGradientBrush – радиальный градиент. ImageBrush – […]
Абстрактный класс Stream C#
Класс Stream Базовым классом для всех потоков является абстрактный класс Stream, располагающийся в пространстве имен System.IO. Класс обеспечивает универсальное представление всех потоков ввода-вывода. В классе Stream определены свойства и методы, которые выполняют следующие действия: чтение потока; запись потока; поиск в потоке; закрытие потока; сброс потока; настройка тайм-аута; другие операции. Операции (методы) чтения потока Для чтения потока определены следующие методы и […]
Стили и триггеры WPF C#
Стиль – это коллекция значений свойств, которые могут быть применены к элементу. Система стилей WPF играет ту же роль, что и CSS в HTML. Ресурсы Ресурсы предоставляют то же решение, что и стили, но они являютсягромоздкими и не удобными. Так будет выглядеть объявление ресурса:
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 |
<!--Ресурсы окна --> <Window.Resources> <FontFamily x:Key="ButtonFontFamily">Times New Roman</FontFamily> <sys:Double x:Key="ButtonFontSize">18</sys:Double> <FontWeight x:Key="ButtonFontWeight">Bold</FontWeight> </Window.Resources> <StackPanel Margin="5"> <Button Padding="5" Margin="5" FontFamily="{StaticResource ButtonFontFamily}" FontWeight="{StaticResource ButtonFontWeight}" FontSize="{StaticResource ButtonFontSize}"> Кнопка с настройками </Button> <TextBlock Margin="5">Обычный контент.</TextBlock> <Button Padding="5" Margin="5">Обычная кнопка</Button> <TextBlock Margin="5">Еще обычный контент.</TextBlock> <Button Padding="5" Margin="5" FontFamily="{StaticResource ButtonFontFamily}" FontWeight="{StaticResource ButtonFontWeight}" FontSize="{StaticResource ButtonFontSize}"> Кнопка с настройками </Button> </StackPanel> |
Недостатки • Нет никакого четкого признака, что все три […]