Настройка визульных компонентов Windows Forms
Я разрабатываю приложение, которое позволяет размещать цветы на клумбе.
Цветы - это фотографии из интернета, размер клумбы и форму задается пользователями.
Приложение кроссплатформенное, разрабатываю на C# в качестве фреймворка использую Windows Forms.
Это черновой вариант приложения:
using System;
using System.Drawing;
using System.Net;
using System.Windows.Forms;
namespace FlowersAndFlowerbeds
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void LoadFlowerImage(string imageUrl, string flowerName)
{
try
{
WebClient webClient = new WebClient();
byte[] imageData = webClient.DownloadData(imageUrl);
Image img = Image.FromStream(new MemoryStream(imageData));
PictureBox flowerPictureBox = new PictureBox();
flowerPictureBox.Image = img;
flowerPictureBox.SizeMode = PictureBoxSizeMode.Zoom; // Display the image without stretching
flowerPictureBox.Tag = flowerName; // Store the flower name as a tag
// Add a click event handler to change the height of the flower when clicked
flowerPictureBox.Click += (sender, e) =>
{
// Change the height of the flower accordingly
};
Controls.Add(flowerPictureBox);
}
catch (Exception ex)
{
MessageBox.Show($"Error loading image: {ex.Message}");
}
}
private void MainForm_Load(object sender, EventArgs e)
{
LoadFlowerImage("https://example.com/rose.jpg", "Rose");
// Add more flowers as needed
}
}
}
Я бы хотел узнать как можно изменить визуальные компоненты в Windows Forms.
И где лучше хранить данные пользователя.
Ответы (1 шт):
Вот хороший ресурс по Windows Forms, там подробно разобраны визуальные элементы и работа с их свойствами для настройки.
Так-же можете обратить внимание на сторонние библиотеки элементов (у которых дизайн посвежее), например MaterialSkin.
Для большой графической гибкости (да и в принципе), я бы рекомендовал использовать современные кроссплотформенные решения, для C# это - MAUI (на русском почитать тут).
Пользовательские данные можно хранить в MsSql, PostgreSQL, SQLite, MongoDb и т.д. - это зависит только от данных, вариантов их использования, бюджетов и архитектуры приложения