1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using Avalonia;
- using Avalonia.Controls;
- using Avalonia.Controls.Shapes;
- using Avalonia.Media;
- using AvaloniaApplicationTest.Models;
- using ReactiveUI;
- using System;
- using System.Collections.Generic;
- namespace AvaloniaApplicationTest.ViewModels
- {
- public class MainWindowViewModel : ViewModelBase
- {
- #region Простейшая реализация паттерна
- // свойство для отображения значения числового поля и изменения его при увеличении значения числового поля:
- public int Count {
- get => ModelClass.count;
- set => this.RaiseAndSetIfChanged(ref ModelClass.count, value);
- }
- // свойство для отображения фамилий в раскрывающемся списке
- public List<string> Surname => ModelClass.SurnameList;
- string message = ""; // начальное значение поля, в которое выводится сообщение
-
- // свойство, которое считывает значение из текстового поля и выводит его на экран
- public string Message
- {
- get => message;
- set => this.RaiseAndSetIfChanged(ref message, value);
- }
- public void AddCount() // метод, который увеличивает числовое значение
- {
- Count++;
- }
- #endregion
- #region Основа капчи
- Canvas can; // изначально контейнер Canvas пустой
-
- // свойтсво, которое отображает созданный контейнер Canvas в UserControl
- public Canvas Can
- {
- get => can;
- set => this.RaiseAndSetIfChanged(ref can, value);
- }
-
- public void CreateCaptcha() // метод для создания Canvas, внутри которого рандомно генерируются линии
- {
- SolidColorBrush color = new SolidColorBrush(Color.FromRgb(155, 155, 155));
- Canvas canvas = new Canvas()
- {
- Width = 400,
- Height = 400,
- Background = color,
- };
- Random rnd = new Random();
- TextBlock text = new TextBlock()
- {
- Text = "1",
- FontSize = 36,
- Foreground = Brushes.Blue,
- Padding = new Thickness(100)
- };
- canvas.Children.Add(text);
- for (int i = 0; i<=10;i++)
- {
- Line line = new Line()
- {
- StartPoint = new Point(rnd.Next(400), rnd.Next(400)),
- EndPoint = new Point(rnd.Next(400), rnd.Next(400)),
- Stroke = Brushes.Red,
- StrokeThickness = 5
- };
- canvas.Children.Add(line);
- }
-
- Can = canvas;
- }
- #endregion
- }
- }
|