using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GeneralLib;
namespace SunVoteARSPPT
{
public partial class FrmChartSet : Form
{
public FrmChartSet()
{
InitializeComponent();
}
///
/// 幻灯片的TagSet
/// 创建:杨斌 2012-06-26
///
private TagSet TagSet = null;
//杨斌 2012-06-26
private void btnOK_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
TagSet.SetValue(TagKey.ChartColor_, i, lvwColorSet.Items[i].BackColor.ToArgb());
//GlobalInfo.ChartColors[i] = lvwColorSet.Items[i].BackColor;
}
TagSet.SetValue(TagKey.ChartPara_ItemLabelFontName, ItemLabelFont.Name);
TagSet.SetValue(TagKey.ChartPara_ItemLabelFontSize, ItemLabelFont.Size);
TagSet.SetValue(TagKey.ChartPara_ItemLabelFontBold, ItemLabelFont.Bold);
TagSet.SetValue(TagKey.ChartPara_ItemLabelFontItalic, ItemLabelFont.Italic);
TagSet.SetValue(TagKey.ChartPara_ItemLabelFontColor, ItemLabelColor.ToArgb());
TagSet.SetValue(TagKey.ChartPara_DataLabelFontName, DataLabelFont.Name);
TagSet.SetValue(TagKey.ChartPara_DataLabelFontSize, DataLabelFont.Size);
TagSet.SetValue(TagKey.ChartPara_DataLabelFontBold, DataLabelFont.Bold);
TagSet.SetValue(TagKey.ChartPara_DataLabelFontItalic, DataLabelFont.Italic);
TagSet.SetValue(TagKey.ChartPara_DataLabelFontColor, DataLabelColor.ToArgb());
//2012-06-13 设置颜色时,图表未显示
Globals.SunVoteARSAddIn.PPTEdit.InitChart(true, Globals.SunVoteARSAddIn.PPTEdit.SlideEdit);
//Globals.SunVoteARSAddIn.PPTEdit.SlideChart.SeriesColors = GlobalInfo.ChartColors;
this.Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 从Tags中获取图表颜色
/// 创建:杨斌 2012-03-20
///
///
///
///
public static Color GetTagSetColor(TagSet tagSet, int itemNo)
{
Color res = new Color();
try
{
int min = GlobalInfo.ChartColors.GetLowerBound(0);
int max = GlobalInfo.ChartColors.GetUpperBound(0);
if (itemNo < min) itemNo = min;
if (itemNo > max) itemNo = max;
string sVal = tagSet.LoadValue(TagKey.ChartColor_, itemNo, "").Value;
if (sVal.Length > 0)//非空从Slide中取
{
res = Color.FromArgb(ConvertOper.Convert(sVal).ToInt);
}
else//为空则取:系统默认颜色
{
res = GlobalInfo.ChartColors[itemNo];
//表决和其他选项都统一用一个颜色表。杨斌 2018-07-26
////表决默认颜色,绿红蓝。杨斌 2015-05-18
//ResponseType responseType = EnumName.GetEnum(tagSet.LoadValue(TagKey.ResponseType, ResponseType.Slide).Value);
//if (responseType == ResponseType.Vote)
//{
// switch (itemNo)
// {
// case 0:
// //res = Color.FromArgb(0, 225, 0);
// res = Color.FromArgb(0, 176, 80);
// break;
// case 1:
// //res = Color.FromArgb(224, 64, 10);
// res = Color.FromArgb(255, 0, 0);
// break;
// case 2:
// //res = Color.FromArgb(65, 140, 240);
// res = Color.FromArgb(0, 0, 255);
// break;
// }
//}
tagSet.SetValue(TagKey.ChartColor_, itemNo, res.ToArgb());//空值则设置保存默认
}
}
catch (Exception ex)
{
SystemLog.WriterLog(ex, false);
}
return res;
}
//杨斌 2012-06-28
private void FrmChartSet_Load(object sender, EventArgs e)
{
IsLoad = true;
GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
TagSet = new TagSet();
TagSet.Tags = Globals.SunVoteARSAddIn.PPTEdit.SlideEdit.Tags;
lvwColorSet.HeaderStyle = ColumnHeaderStyle.None;
for (int i = 0; i < 10; i++)
{
//lvwColorSet.Items[i].BackColor = Color.FromArgb(TagSet.LoadValue(TagKey.ChartColor_, i, GlobalInfo.ChartColors[i]).ToInt);
lvwColorSet.Items[i].BackColor = GetTagSetColor(TagSet, i);//杨斌 2012-03-20
}
lvwColorSet.Font = new System.Drawing.Font(lvwColorSet.Font.Name, 17);
cboFontName.Items.Clear();
foreach (FontFamily font in FontFamily.Families)
{
cboFontName.Items.Add(font.Name);
}
//参照Offic字号列表
cboFontSize.Items.Clear();
cboFontSize.Items.Add(8);
cboFontSize.Items.Add(9);
cboFontSize.Items.Add(10);
cboFontSize.Items.Add(10.5);
cboFontSize.Items.Add(11);
cboFontSize.Items.Add(12);
cboFontSize.Items.Add(14);
cboFontSize.Items.Add(16);
cboFontSize.Items.Add(18);
cboFontSize.Items.Add(20);
cboFontSize.Items.Add(24);
cboFontSize.Items.Add(28);
cboFontSize.Items.Add(32);
cboFontSize.Items.Add(36);
cboFontSize.Items.Add(40);
cboFontSize.Items.Add(44);
cboFontSize.Items.Add(48);
cboFontSize.Items.Add(54);
cboFontSize.Items.Add(60);
cboFontSize.Items.Add(66);
cboFontSize.Items.Add(72);
cboFontSize.Items.Add(80);
cboFontSize.Items.Add(88);
cboFontSize.Items.Add(96);
Chart = Globals.SunVoteARSAddIn.PPTEdit.SlideChart;
ItemLabelFont = Chart.ItemLabelFont.Clone() as Font;
ItemLabelColor = Chart.ItemLabelColor;
DataLabelFont = Chart.DataLabelFont.Clone() as Font;
DataLabelColor = Chart.DataLabelColor;
cboFontObject.SelectedIndex = 0;
IsLoad = false;
}
private void lvwColor_MouseUp(object sender, MouseEventArgs e)
{
try
{
picFocus.Select();
ColorDialog cdlg = new ColorDialog();
cdlg.Color = lvwColorSet.SelectedItems[0].BackColor;
//杨斌 2014-10-16
if (GlobalInfo.MyCustomColors != null)
cdlg.CustomColors = GlobalInfo.MyCustomColors;
cdlg.ShowDialog();
GlobalInfo.MyCustomColors = cdlg.CustomColors;//杨斌 2014-10-16
lvwColorSet.SelectedItems[0].BackColor = cdlg.Color;
}
catch
{
}
}
//保存字体颜色参数值
ManageChart Chart;
private Font ItemLabelFont;
private Color ItemLabelColor;
private Font DataLabelFont;
private Color DataLabelColor;
///
/// 是否正在加载,不处理控件事件
/// 创建:杨斌 2012-06-26
///
bool IsLoad = false;
//杨斌 2012-06-26
private void cboFontObject_SelectedIndexChanged(object sender, EventArgs e)
{
if (Chart == null) return;
IsLoad = true;
Font font = null;
Color color = Color.Black;
switch (cboFontObject.SelectedIndex)
{
case 0://选项标签
font = ItemLabelFont;
color = ItemLabelColor;
break;
case 1://数据标签
font = DataLabelFont;
color = DataLabelColor;
break;
default:
return;
}
string fontName = font.Name;
if (!cboFontName.Items.Contains(fontName)) cboFontName.Items.Add(fontName);
cboFontName.Text = fontName;
cboFontSize.Text = font.Size.ToString();
chkFontBold.Checked = font.Bold;
chkFontItalic.Checked = font.Italic;
picFontColor.BackColor = color;
IsLoad = false;
}
///
/// 设置字体
/// 创建:杨斌 2012-06-26
///
private void Font_Changed(object sender, EventArgs e)
{
if (IsLoad) return;
float fontSize = 0;
float.TryParse(cboFontSize.Text, out fontSize);
FontStyle style = FontStyle.Regular;
if (chkFontBold.Checked) style = style | FontStyle.Bold;
if (chkFontItalic.Checked) style = style | FontStyle.Italic;
string fontName = cboFontName.Text;
switch (cboFontObject.SelectedIndex)
{
case 0://选项标签
if (fontSize == 0) fontSize = ItemLabelFont.Size;
ItemLabelFont = new Font(fontName, fontSize, style);
break;
case 1://数据标签
if (fontSize == 0) fontSize = DataLabelFont.Size;
DataLabelFont = new Font(fontName, fontSize, style);
break;
default:
return;
}
}
private void picFontColor_Click(object sender, EventArgs e)
{
try
{
ColorDialog cdlg = new ColorDialog();
cdlg.Color = picFontColor.BackColor;
cdlg.ShowDialog();
picFontColor.BackColor = cdlg.Color;
switch (cboFontObject.SelectedIndex)
{
case 0://选项标签
ItemLabelColor = picFontColor.BackColor;
break;
case 1://数据标签
DataLabelColor = picFontColor.BackColor;
break;
default:
return;
}
}
catch
{
}
}
}
}