Files
kortapp-z/AppCard.cs
zsyg fbaa9e0515 Add files via upload
初始化
2025-06-13 11:10:16 +08:00

83 lines
2.8 KiB
C#

using System;
using System.Drawing;
using System.Windows.Forms;
namespace AppStore
{
public class AppCard : UserControl
{
private PictureBox iconBox;
private Label nameLabel;
private Button downloadBtn;
public string AppName { get; set; } = string.Empty;
public Image AppIcon { get; set; } = SystemIcons.Application.ToBitmap();
public string DownloadUrl { get; set; } = string.Empty;
public AppCard()
{
iconBox = new PictureBox();
nameLabel = new Label();
downloadBtn = new Button();
InitializeComponent();
}
private void InitializeComponent()
{
this.Size = new Size(200, 120);
this.BackColor = Color.White;
this.BorderStyle = BorderStyle.FixedSingle;
// 应用图标
iconBox = new PictureBox();
iconBox.Size = new Size(64, 64);
iconBox.Location = new Point(10, 10);
iconBox.SizeMode = PictureBoxSizeMode.StretchImage;
this.Controls.Add(iconBox);
// 应用名称
nameLabel = new Label();
nameLabel.AutoSize = true;
nameLabel.Location = new Point(80, 15);
nameLabel.Font = new Font("Microsoft YaHei", 10, FontStyle.Bold);
this.Controls.Add(nameLabel);
// 下载按钮
downloadBtn = new Button();
downloadBtn.Text = "下载";
downloadBtn.Size = new Size(80, 30);
downloadBtn.Location = new Point(60, 80);
downloadBtn.BackColor = Color.FromArgb(0, 120, 215);
downloadBtn.ForeColor = Color.White;
downloadBtn.FlatStyle = FlatStyle.Flat;
downloadBtn.FlatAppearance.BorderSize = 0;
downloadBtn.Click += DownloadBtn_Click;
this.Controls.Add(downloadBtn);
}
public void UpdateDisplay()
{
nameLabel.Text = AppName;
iconBox.Image = AppIcon;
}
private void DownloadBtn_Click(object sender, EventArgs e)
{
if (sender == null || e == null) return;
if (!string.IsNullOrEmpty(DownloadUrl))
{
try
{
string fileName = $"{AppName.Replace(" ", "_")}.exe";
DownloadManager.Instance.StartDownload(fileName, DownloadUrl);
MessageBox.Show($"已开始下载: {AppName}", "下载中", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show($"下载失败: {ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
}