Использование классов

185
17 ноября 2018, 03:00

Как такое бы выглядело с использованием своего класса для создания этих самых точек ?

В методе OtrisovkaTochek() меняется только положение этих самых точек на холсте.

А все остальные свойства ширина, высота, ширина контура, цвет контура, цвет заливки у них одинаковые.

Просто , маленький бы примерчик или учебный материал.

    Rectangle leftTopPoint = new Rectangle();           // Создание экземпляра левой верхней точки
    Rectangle rightTopPoint = new Rectangle();          // Создание экземпляра правой верхней точки
    Rectangle leftBottomPoint = new Rectangle();        // Создание экземпляра левой нижней точки
    Rectangle rightBottomPoint = new Rectangle();       // Создание экземпляра правой нижней точки
    // Метод отрисовывет точки
    private void OtrisovkaTochek()
    {
        // Левая верхняя точка
        leftTopPoint.Width = 7;                        // Ширина точки
        leftTopPoint.Height = 7;                       // Высота точки
        leftTopPoint.Stroke = Brushes.White;           // Цвет контура точки
        leftTopPoint.Fill = Brushes.Black;             // Цвет заливки точки
        leftTopPoint.StrokeThickness = 1;              // Толщина контура точки
        Canvas.SetLeft(leftTopPoint, x1 - 3);          // Положение точки по оси X
        Canvas.SetTop(leftTopPoint, y1 - 3);           // Положение точки по оси Y
        // Правая верхняя точка
        rightTopPoint.Width = 7;                         // Ширина точки
        rightTopPoint.Height = 7;                        // Высота точки
        rightTopPoint.Stroke = Brushes.White;            // Цвет контура точки
        rightTopPoint.Fill = Brushes.Black;              // Цвет заливки точки
        rightTopPoint.StrokeThickness = 1;               // Толщина контура точки
        Canvas.SetLeft(rightTopPoint, x2 - 4);           // Положение точки по оси X
        Canvas.SetTop(rightTopPoint, y2 - 3);            // Положение точки по оси Y
        // Левая нижняя точка
        leftBottomPoint.Width = 7;                       // Ширина точки
        leftBottomPoint.Height = 7;                      // Высота точки
        leftBottomPoint.Stroke = Brushes.White;          // Цвет контура точки
        leftBottomPoint.Fill = Brushes.Black;            // Цвет заливки точки
        leftBottomPoint.StrokeThickness = 1;             // Толщина контура точки
        Canvas.SetLeft(leftBottomPoint, x3 - 3);         // Положение точки по оси X
        Canvas.SetTop(leftBottomPoint, y3 - 4);          // Положение точки по оси Y
        // Правая нижняя точка
        rightBottomPoint.Width = 7;                       // Ширина точки
        rightBottomPoint.Height = 7;                      // Высота точки
        rightBottomPoint.Stroke = Brushes.White;          // Цвет контура точки
        rightBottomPoint.Fill = Brushes.Black;            // Цвет заливки точки
        rightBottomPoint.StrokeThickness = 1;             // Толщина контура точки
        Canvas.SetLeft(rightBottomPoint, x4 - 4);         // Положение точки по оси X
        Canvas.SetTop(rightBottomPoint, y4 - 4);          // Положение точки по оси Y
    }
Answer 1

Для этого не надо писать класс, достаточно написать метод. Такой рефакторинг называется Extract Method, используется для группировки функционала в одном методе, ну, или, как в данном случае, помещения повторяющегося кода в метод.

Rectangle leftTopPoint = new Rectangle();           // Создание экземпляра левой верхней точки
Rectangle rightTopPoint = new Rectangle();          // Создание экземпляра правой верхней точки
Rectangle leftBottomPoint = new Rectangle();        // Создание экземпляра левой нижней точки
Rectangle rightBottomPoint = new Rectangle();       // Создание экземпляра правой нижней точки
// Метод отрисовывет точки
private void OtrisovkaTochek()
{
    // Левая верхняя точка
    SetupRect(leftTopPoint, x1 - 3, y1 - 3);
    // Правая верхняя точка
    SetupRect(rightTopPoint, x2 - 4, y2 - 3);   
    // Левая нижняя точка
    SetupRect(leftBottomPoint, x3 - 3, y3 - 4);
    // Правая нижняя точка
    SetupRect(rightBottomPoint, x4 - 4, y4 - 4);
}
private void SetupRect(Rectangle target, double left, double top)
{
    target.Width = 7;                       // Ширина точки
    target.Height = 7;                      // Высота точки
    target.Stroke = Brushes.White;          // Цвет контура точки
    target.Fill = Brushes.Black;            // Цвет заливки точки
    target.StrokeThickness = 1;             // Толщина контура точки
    Canvas.SetLeft(target, left);         // Положение точки по оси X
    Canvas.SetTop(target, top);          // Положение точки по оси Y
}
READ ALSO
WPF Grid TextBox с выделением

WPF Grid TextBox с выделением

Как взять из DataGrid только

145
Как добавить ссылку на службу в референс?

Как добавить ссылку на службу в референс?

Нужно добавить в Reference SystemServiceProcess

164
.NET Core 2.1 и директивы препроцессора

.NET Core 2.1 и директивы препроцессора

Прочитал, что для того, чтобы использовать выражение #if RELEASE нужно в настройках проекта установить в режиме релиза значение RELEASE в textbox Conditional...

184