old_flsystem/应用/UserFission/ImageDesignForm.cs

415 lines
16 KiB
C#
Raw Permalink Normal View History

2022-09-20 03:10:29 +00:00
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using UI.Framework.Forms;
using Newtonsoft.Json;
using UserFission.Properties;
using UserFission.Entitys;
using System.IO;
using UserFission.;
using Api.Framework.Tools;
using UI.Framework.Tools;
using Chat.Framework;
using System.Linq;
namespace UserFission
{
public partial class ImageDesignForm : BaseForm
{
public ImageDesignForm()
{
InitializeComponent();
this.Text = Resources.PluginBillTitle;
}
private void cBox_txt_CheckedChangedcBox_txt_CheckedChanged(object sender, EventArgs e)
{
try
{
CheckBox check = (CheckBox)sender;
if (check.Name.Contains("1") && check.Checked)
lbltxt1.Visible = true;
else if (check.Name.Contains("1") && !check.Checked)
lbltxt1.Visible = false;
else if (check.Name.Contains("2") && check.Checked)
lbltxt2.Visible = true;
else if (check.Name.Contains("2") && !check.Checked)
lbltxt2.Visible = false;
}
catch (Exception ex)
{
ShowError(ex);
}
}
private void tBox_txt_TextChanged(object sender, EventArgs e)
{
try
{
TextBox text = (TextBox)sender;
if (text.Name.Contains("1"))
lbltxt1.Text = text.Text;
else
lbltxt2.Text = text.Text;
}
catch (Exception ex)
{
ShowError(ex);
}
}
//private void btn_QRCode_Click(object sender, EventArgs e)
//{
// try
// {
// OpenFileDialog openDialog = new OpenFileDialog();
// openDialog.Filter = "图片文件|*.jpg;*.png;*.gif|All files(*.*)|*.*";
// if (openDialog.ShowDialog() == DialogResult.OK)
// {
// if (string.IsNullOrEmpty(openDialog.FileName))
// throw new Exception("请先打开一张二维码图片!");
// else
// tBox_QRCode.Text = Util.DecodeQRCode(openDialog.FileName, Util.DecodeQRCodeType.Caoliao);
// }
// }
// catch (Exception ex)
// {
// if (ex.Message == "Invalid number of Finder Pattern detected")
// ShowError("二维码无法解析,请换一个重试");
// else
// ShowError(ex);
// }
//}
private void ImageDesignForm_Load(object sender, EventArgs e)
{
try
{
Class1.pick = new PickBox();
#region
if (!string.IsNullOrEmpty(Class1.Config.Controlsdic))
{
var _controldic = JsonConvert.DeserializeObject<Dictionary<string, Controls>>(Class1.Config.Controlsdic);
foreach (KeyValuePair<string, Controls> item in _controldic)
{
if (item.Key == "pBox_QRcode")
{
pBox_QRcode.Name = item.Value.C_Name;
pBox_QRcode.Location = item.Value.C_Point;
pBox_QRcode.Size = item.Value.C_Size;
pBox_QRcode.BackgroundImage = null;
//tBox_QRCode.Text = item.Value.C_Tag;
}
else if (item.Value.C_Name == "lbltxt1")
{
lbltxt1.Font = JsonConvert.DeserializeObject<Font>(item.Value.T_FontJson);
lbltxt1.Size = item.Value.C_Size;
lbltxt1.ForeColor = item.Value.T_ForeColor;
lbltxt1.Width = item.Value.T_Width;
lbltxt1.Height = item.Value.T_Height;
lbltxt1.Location = item.Value.C_Point;
lbltxt1.Visible = item.Value.C_Visible;
cBox_txt1.Checked = item.Value.C_Visible;
tBox_txt1.Text = item.Value.C_Tag;
colorPickEdit1.Color = item.Value.T_ForeColor;
}
else if (item.Value.C_Name == "lbltxt2")
{
lbltxt2.Font = JsonConvert.DeserializeObject<Font>(item.Value.T_FontJson);
lbltxt2.Size = item.Value.C_Size;
lbltxt2.ForeColor = item.Value.T_ForeColor;
lbltxt2.Width = item.Value.T_Width;
lbltxt2.Height = item.Value.T_Height;
lbltxt2.Location = item.Value.C_Point;
lbltxt2.Visible = item.Value.C_Visible;
cBox_txt2.Checked = item.Value.C_Visible;
tBox_txt2.Text = item.Value.C_Tag;
colorPickEdit2.Color = item.Value.T_ForeColor;
}
else if (item.Key == "panel_Plot")
{
panel_Plot.Name = item.Value.C_Name;
panel_Plot.Location = item.Value.C_Point;
panel_Plot.Size = item.Value.C_Size;
panel_Plot.BackgroundImage = Tools.ReadImageFile(Tools.PosterPathImgUrl);
panel_Plot.BackgroundImageLayout = ImageLayout.Stretch;
panel_Plot.Font = JsonConvert.DeserializeObject<Font>(item.Value.T_FontJson);
}
}
}
cBox_AutoQrCode.Checked = Class1.Config.AutoQrCode;
cBox_AutoPicture.Checked = Class1.Config.AutoPicture;
tBox_Logo.Text = Class1.Config.LogoUrl;
tBox_Size.Text = Class1.Config.LogoSize.ToString();
if (panel_Plot.BackgroundImage == null)
panel_Plot.BackgroundImage = Resources.;
#endregion
#region
foreach (Control item in panel1.Controls)
{
Class1.pick.WireControl(item);
}
foreach (Control item in panel_Plot.Controls)
{
Class1.pick.WireControl(item);
}
#endregion
}
catch (Exception ex)
{
ShowError(ex);
}
}
/// <summary>
/// 上传背景图
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_BackIamge_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.Title = "选择要上传的图片";
fdlg.InitialDirectory = @"c:\";
fdlg.Filter = "jpg,png,bmp,gif|*.jpg;*.png;*.bmp;*.gif;";
fdlg.FilterIndex = 1;
fdlg.RestoreDirectory = true;
if (fdlg.ShowDialog() == DialogResult.OK)
{
if (Tools.PosterPathImgUrl.Trim() == fdlg.FileName.Trim()) throw new Exception("选择的路径为非法路径~!");
if (!string.IsNullOrWhiteSpace(Tools.PosterPathImgUrl))
File.Delete(Tools.PosterPathImgUrl);
File.Copy(fdlg.FileName, Tools.PosterPathImgUrl);
panel_Plot.BackgroundImage = Tools.ReadImageFile(Tools.PosterPathImgUrl);
}
fdlg.Dispose();
}
catch (Exception ex)
{
ShowError(ex);
}
}
/// <summary>
/// 自动获取微信二维码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cBox_AutoQrCode_CheckedChanged(object sender, EventArgs e)
{
//try
//{
// if (cBox_AutoQrCode.Checked)
// groupBox_ImageType.Enabled = false;
// else
// groupBox_ImageType.Enabled = true;
//}
//catch (Exception ex)
//{
// ShowError(ex);
//}
}
/// <summary>
/// 自动获取微信头像
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cBox_AutoPicture_CheckedChanged(object sender, EventArgs e)
{
try
{
if (cBox_AutoPicture.Checked)
{
tBox_Logo.Enabled = false;
button2.Enabled = false;
}
else
{
tBox_Logo.Enabled = true;
button2.Enabled = true;
}
}
catch (Exception ex)
{
ShowError(ex);
}
}
/// <summary>
/// 上传Logo图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog openDialog = new OpenFileDialog();
openDialog.Filter = "图片文件|*.jpg;*.png;*.gif|All files(*.*)|*.*";
if (openDialog.ShowDialog() == DialogResult.OK) tBox_Logo.Text = openDialog.FileName;
}
catch (Exception ex)
{
ShowError(ex);
}
}
/// <summary>
/// 修改字体属性
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_txt_Click(object sender, EventArgs e)
{
try
{
Button button = (Button)sender;
FontDialog font = new FontDialog();
if (font.ShowDialog() == DialogResult.OK)
{
if (button.Name.Contains("1"))
lbltxt1.Font = font.Font;
else
lbltxt2.Font = font.Font;
}
}
catch (Exception ex)
{
ShowError(ex);
}
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Clipboard.SetDataObject(((LinkLabel)sender).Text);
}
private void button3_Click(object sender, EventArgs e)
{
try
{
//if (string.IsNullOrWhiteSpace(tBox_QRCode.Text) && !cBox_AutoQrCode.Checked)
//if (!cBox_AutoQrCode.Checked)
// throw new Exception("二维码内容不能为空!");
Dictionary<string, Controls> _controls = new Dictionary<string, Controls>();
#region
foreach (Control item in panel_Plot.Controls)
{
var _control = new Controls();
_control.C_Name = item.Name;
_control.C_Point = item.Location;
_control.C_Size = item.Size;
if (typeof(Label) == item.GetType())
{
Label label = (Label)item;
if (label.Tag == null && string.IsNullOrWhiteSpace(label.Text)) { continue; }
_control.C_Tag = label.Text;
_control.T_FontJson = JsonConvert.SerializeObject(label.Font);
_control.T_Width = label.Width;
_control.T_Height = label.Height;
_control.T_ForeColor = label.ForeColor;
_control.C_Visible = label.Visible;
_controls.Add(item.Name, _control);
}
else if (typeof(MyPictureBox) == item.GetType())
{
_control.C_Tag = string.Empty;//tBox_QRCode.Text.Trim();
_controls.Add(item.Name, _control);
}
}
//保存底图控件信息
_controls.Add(panel_Plot.Name, new Controls() { C_Name = panel_Plot.Name, C_Point = panel_Plot.Location, C_Size = panel_Plot.Size, T_FontJson = JsonConvert.SerializeObject(panel_Plot.Font) });
#endregion
#region
try
{
var imagePath = Util.MapFile("QRCodelogo.jpg", "File\\Image");
if (imagePath.Trim() != tBox_Logo.Text.Trim() && !string.IsNullOrWhiteSpace(tBox_Logo.Text.Trim()))
{
if (tBox_Logo.Text.Contains("http"))
FileTools.DownloadImage(tBox_Logo.Text, imagePath);
else
File.Copy(tBox_Logo.Text, imagePath, true);
tBox_Logo.Text = imagePath;
Class1.Config.LogoUrl = imagePath;
}
}
catch (Exception)
{
throw new Exception("logo图片路径不正确");
}
Class1.Config.AutoQrCode = cBox_AutoQrCode.Checked;
Class1.Config.AutoPicture = cBox_AutoPicture.Checked;
Class1.Config.LogoSize = int.Parse(tBox_Size.Text);
#endregion
Class1.Config.Controlsdic = JsonConvert.SerializeObject(_controls);
ShowSuccess("保存成功");
}
catch (Exception ex)
{
ShowError(ex);
}
}
/// <summary>
/// 预览效果
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
try
{
try
{ Class1.pick.RemoveSelect(); }
catch (Exception)
{ }
QrCode qrCode = null;
if (Class1.Config.QrCodes.Count != 0)
qrCode = Class1.Config.QrCodes.First();
pBox_QRcode.BackgroundImage = Tools.CreateQRCode(qrCode != null ? qrCode.url : "未存在二维码,当前为测试内容", tBox_Logo.Text, string.IsNullOrEmpty(tBox_Size.Text) ? 0 : int.Parse(tBox_Size.Text), 6);
//pBox_QRcode.BackgroundImage = Tools.CreateQRCode(tBox_QRCode.Text, tBox_Logo.Text, string.IsNullOrEmpty(tBox_Size.Text) ? 0 : int.Parse(tBox_Size.Text), 6);
}
catch (Exception ex)
{
ShowError(ex);
}
}
private void colorPickEdit1_EditValueChanged(object sender, EventArgs e)
{
try
{
var color = (ColorPickEdit)sender;
if (color.Name.Contains("1"))
lbltxt1.ForeColor = color.Color;
else
lbltxt2.ForeColor = color.Color;
}
catch (Exception ex)
{
ShowError(ex);
}
}
private void button4_Click(object sender, EventArgs e)
{
var form = new QRCodeForm();
form.ShowDialog();
}
}
}