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 { } } } }