Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- namespace Paint
- {
- /// <summary>
- /// Логика взаимодействия для MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
- line_color = new Color();
- line_color.A = 255;
- line_color.R = (byte)color_a.Value;
- line_color.G = (byte)color_b.Value;
- line_color.B = (byte)color_c.Value;
- int line_size = (int)width_slider.Value;
- }
- int line_size;
- bool is_drawing = false;
- Point prev_mouse_position;
- Color line_color;
- private void Canvas_MouseDown(object sender, MouseButtonEventArgs e)
- {
- is_drawing = true;
- prev_mouse_position = e.GetPosition(this);
- }
- private void Canvas_MouseUp(object sender, MouseButtonEventArgs e)
- {
- is_drawing = false;
- if (circle_rb.IsChecked.Value)
- {
- Ellipse ellipse = new Ellipse();
- // Настройка границы
- ellipse.StrokeThickness = 1;
- ellipse.Stroke = new SolidColorBrush(line_color);
- // Настройка заливки
- ellipse.Fill = new SolidColorBrush(line_color);
- // Настройка ширины и высоты
- Point curr_mouse_position = e.GetPosition(this);
- if (prev_mouse_position.X > curr_mouse_position.X)
- {
- double kek;
- kek = curr_mouse_position.X;
- curr_mouse_position.X = prev_mouse_position.X;
- prev_mouse_position.X = kek;
- }
- if (prev_mouse_position.Y > curr_mouse_position.Y)
- {
- double kek;
- kek = curr_mouse_position.Y;
- curr_mouse_position.Y = prev_mouse_position.Y;
- prev_mouse_position.Y = kek;
- }
- ellipse.Width = Math.Abs(curr_mouse_position.X - prev_mouse_position.X);
- ellipse.Height = Math.Abs(curr_mouse_position.Y - prev_mouse_position.Y);
- // Настройка положения
- Canvas.SetLeft(ellipse, prev_mouse_position.X -20);
- Canvas.SetTop(ellipse, prev_mouse_position.Y - 110);
- // Добавление на Canvas с именем canvas
- canvas.Children.Add(ellipse);
- } else if (reactangle_rb.IsChecked.Value)
- {
- Rectangle rectangle = new Rectangle();
- // Настройка границы
- rectangle.StrokeThickness = 1;
- rectangle.Stroke = new SolidColorBrush(line_color);
- // Настройка заливки
- rectangle.Fill = new SolidColorBrush(line_color);
- // Настройка ширины и высоты
- Point curr_mouse_position = e.GetPosition(this);
- if (prev_mouse_position.X > curr_mouse_position.X)
- {
- double kek;
- kek = curr_mouse_position.X;
- curr_mouse_position.X = prev_mouse_position.X;
- prev_mouse_position.X = kek;
- }
- if (prev_mouse_position.Y > curr_mouse_position.Y)
- {
- double kek;
- kek = curr_mouse_position.Y;
- curr_mouse_position.Y = prev_mouse_position.Y;
- prev_mouse_position.Y = kek;
- }
- rectangle.Width = Math.Abs(curr_mouse_position.X - prev_mouse_position.X);
- rectangle.Height = Math.Abs(curr_mouse_position.Y - prev_mouse_position.Y);
- // Настройка положения
- Canvas.SetLeft(rectangle, prev_mouse_position.X - 20);
- Canvas.SetTop(rectangle, prev_mouse_position.Y - 110);
- // Добавление на Canvas с именем canvas
- canvas.Children.Add(rectangle);
- }
- }
- private void Canvas_MouseMove(object sender, MouseEventArgs e)
- {
- if (is_drawing)
- {
- if (pencil_rb.IsChecked.Value == true)
- {
- line_color.R = (byte)color_a.Value;
- line_color.G = (byte)color_b.Value;
- line_color.B = (byte)color_c.Value;
- Ellipse ellipse = new Ellipse(); // Создание переменной точки
- ellipse.StrokeThickness = 2; // Установка толщины
- ellipse.Stroke = Brushes.CornflowerBlue; // Установка цвета из фиксированного набора
- Canvas.SetLeft(ellipse, e.GetPosition(this).X - 20 - 2 / 2); // Установка координаты по X
- Canvas.SetTop(ellipse, e.GetPosition(this).Y - 110 - 2 / 2); // Установка координаты по Y
- ellipse.Stroke = new SolidColorBrush(line_color);
- canvas.Children.Add(ellipse); // Добавление точки на canvas
- Point curr_mouse_position = e.GetPosition(this);
- Line line = new Line(); // Создание переменной линии
- line.StrokeThickness = 2; // Установка толщины
- line.Stroke = Brushes.CornflowerBlue; // Установка цвета из фиксированного набора
- line.X1 = prev_mouse_position.X - 20; // Установка координат начальной и конечной точки
- line.Y1 = prev_mouse_position.Y - 110;
- line.X2 = curr_mouse_position.X - 20;
- line.Y2 = curr_mouse_position.Y - 110;
- line.Stroke = new SolidColorBrush(line_color);
- prev_mouse_position = curr_mouse_position; // Смещение координат
- canvas.Children.Add(line);
- }else if (brush_rb.IsChecked.Value)
- {
- line_color.R = (byte)color_a.Value;
- line_color.G = (byte)color_b.Value;
- line_color.B = (byte)color_c.Value;
- Ellipse ellipse = new Ellipse(); // Создание переменной точки
- ellipse.StrokeThickness = line_size; // Установка толщины
- ellipse.Stroke = Brushes.CornflowerBlue; // Установка цвета из фиксированного набора
- Canvas.SetLeft(ellipse, e.GetPosition(this).X - 20 - line_size / 2); // Установка координаты по X
- Canvas.SetTop(ellipse, e.GetPosition(this).Y - 110 - line_size / 2); // Установка координаты по Y
- ellipse.Stroke = new SolidColorBrush(line_color);
- canvas.Children.Add(ellipse); // Добавление точки на canvas
- Point curr_mouse_position = e.GetPosition(this);
- Line line = new Line(); // Создание переменной линии
- line.StrokeThickness = line_size; // Установка толщины
- line.Stroke = Brushes.CornflowerBlue; // Установка цвета из фиксированного набора
- line.X1 = prev_mouse_position.X - 20; // Установка координат начальной и конечной точки
- line.Y1 = prev_mouse_position.Y - 110;
- line.X2 = curr_mouse_position.X - 20;
- line.Y2 = curr_mouse_position.Y - 110;
- line.Stroke = new SolidColorBrush(line_color);
- prev_mouse_position = curr_mouse_position; // Смещение координат
- canvas.Children.Add(line);
- }else if (eraser_rb.IsChecked.Value)
- {
- line_color.R = 255;
- line_color.G = 255;
- line_color.B = 255;
- Ellipse ellipse = new Ellipse(); // Создание переменной точки
- ellipse.StrokeThickness = line_size; // Установка толщины
- ellipse.Stroke = Brushes.CornflowerBlue; // Установка цвета из фиксированного набора
- Canvas.SetLeft(ellipse, e.GetPosition(this).X - 20 - line_size / 2); // Установка координаты по X
- Canvas.SetTop(ellipse, e.GetPosition(this).Y - 110 - line_size / 2); // Установка координаты по Y
- ellipse.Stroke = new SolidColorBrush(line_color);
- canvas.Children.Add(ellipse); // Добавление точки на canvas
- Point curr_mouse_position = e.GetPosition(this);
- Line line = new Line(); // Создание переменной линии
- line.StrokeThickness = line_size; // Установка толщины
- line.Stroke = Brushes.CornflowerBlue; // Установка цвета из фиксированного набора
- line.X1 = prev_mouse_position.X - 20; // Установка координат начальной и конечной точки
- line.Y1 = prev_mouse_position.Y - 110;
- line.X2 = curr_mouse_position.X - 20;
- line.Y2 = curr_mouse_position.Y - 110;
- line.Stroke = new SolidColorBrush(line_color);
- prev_mouse_position = curr_mouse_position; // Смещение координат
- canvas.Children.Add(line);
- }
- }
- }
- private void Width_slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
- {
- line_size = Convert.ToInt32(width_slider.Value);
- }
- private void Color_a_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
- {
- line_color.R = (byte)color_a.Value;
- }
- private void Color_b_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
- {
- line_color.B = (byte)color_b.Value;
- }
- private void Color_c_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
- {
- line_color.G = (byte)color_c.Value;
- }
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- canvas.Children.Clear();
- }
- private void Pencil_rb_Checked(object sender, RoutedEventArgs e)
- {
- if (width_set_tb.Visibility == Visibility.Visible)
- {
- width_set_tb.Visibility = Visibility.Hidden;
- }
- if (width_slider.Visibility == Visibility.Visible)
- {
- width_slider.Visibility = Visibility.Hidden;
- }
- if (color_tb.Visibility == Visibility.Visible)
- {
- color_tb.Visibility = Visibility.Hidden;
- }
- if (color_a.Visibility == Visibility.Visible)
- {
- color_a.Visibility = Visibility.Hidden;
- }
- if (color_b.Visibility == Visibility.Visible)
- {
- color_b.Visibility = Visibility.Hidden;
- }
- if (color_c.Visibility == Visibility.Visible)
- {
- color_c.Visibility = Visibility.Hidden;
- }
- }
- private void Brush_rb_Checked(object sender, RoutedEventArgs e)
- {
- if (width_set_tb.Visibility == Visibility.Hidden)
- {
- width_set_tb.Visibility = Visibility.Visible;
- }
- if (width_slider.Visibility == Visibility.Hidden)
- {
- width_slider.Visibility = Visibility.Visible;
- }
- if (color_tb.Visibility == Visibility.Hidden)
- {
- color_tb.Visibility = Visibility.Visible;
- }
- if (color_a.Visibility == Visibility.Hidden)
- {
- color_a.Visibility = Visibility.Visible;
- }
- if (color_b.Visibility == Visibility.Hidden)
- {
- color_b.Visibility = Visibility.Visible;
- }
- if (color_c.Visibility == Visibility.Hidden)
- {
- color_c.Visibility = Visibility.Visible;
- }
- }
- private void Eraser_rb_Checked(object sender, RoutedEventArgs e)
- {
- if (width_set_tb.Visibility == Visibility.Hidden)
- {
- width_set_tb.Visibility = Visibility.Visible;
- }
- if (width_slider.Visibility == Visibility.Hidden)
- {
- width_slider.Visibility = Visibility.Visible;
- }
- if (color_tb.Visibility == Visibility.Visible)
- {
- color_tb.Visibility = Visibility.Hidden;
- }
- if (color_a.Visibility == Visibility.Visible)
- {
- color_a.Visibility = Visibility.Hidden;
- }
- if (color_b.Visibility == Visibility.Visible)
- {
- color_b.Visibility = Visibility.Hidden;
- }
- if (color_c.Visibility == Visibility.Visible)
- {
- color_c.Visibility = Visibility.Hidden;
- }
- }
- private void Reactangle_rb_Checked(object sender, RoutedEventArgs e)
- {
- if (width_set_tb.Visibility == Visibility.Visible)
- {
- width_set_tb.Visibility = Visibility.Hidden;
- }
- if (width_slider.Visibility == Visibility.Visible)
- {
- width_slider.Visibility = Visibility.Hidden;
- }
- if (color_tb.Visibility == Visibility.Hidden)
- {
- color_tb.Visibility = Visibility.Visible;
- }
- if (color_a.Visibility == Visibility.Hidden)
- {
- color_a.Visibility = Visibility.Visible;
- }
- if (color_b.Visibility == Visibility.Hidden)
- {
- color_b.Visibility = Visibility.Visible;
- }
- if (color_c.Visibility == Visibility.Hidden)
- {
- color_c.Visibility = Visibility.Visible;
- }
- }
- private void Circle_rb_Checked(object sender, RoutedEventArgs e)
- {
- if (width_set_tb.Visibility == Visibility.Visible)
- {
- width_set_tb.Visibility = Visibility.Hidden;
- }
- if (width_slider.Visibility == Visibility.Visible)
- {
- width_slider.Visibility = Visibility.Hidden;
- }
- if (color_tb.Visibility == Visibility.Hidden)
- {
- color_tb.Visibility = Visibility.Visible;
- }
- if (color_a.Visibility == Visibility.Hidden)
- {
- color_a.Visibility = Visibility.Visible;
- }
- if (color_b.Visibility == Visibility.Hidden)
- {
- color_b.Visibility = Visibility.Visible;
- }
- if (color_c.Visibility == Visibility.Hidden)
- {
- color_c.Visibility = Visibility.Visible;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement