У меня есть проблема, предположим, что диаграмма (со всеми необходимыми данными) уже вставлена в слайд PowerPoint. Теперь я хочу сделать, если человек нажимает на заголовок диаграммы, столбцы / столбцы, легенду или фон диаграммы, заднюю частьцвет этого элемента должен измениться, скажем, на черный.В приложении Word я могу сделать то же самое с
application.Selection.InlineShapes[1].Fill.ForeColor.RGB = setColor;
Как сделать то же самое в powerpoint.
То, что я пробовал в powerpoint:
application.ActiveWindow.Selection.ShapeRange[1].Fill.BackColor.RGB = 0;
Но этовсегда меняет цвет фона диаграммы и Selection.ShapeRange[1].Name
всегда является "заполнителем".
Хотите изменить цвет только одного элемента.Если пользователь нажимает на 1 полосу, цвет этой полосы должен измениться на черный, и ни один другой элемент не должен измениться так же, если щелкнуть заголовок диаграммы, фон только изменится.Я новичок в .net и помогу в этом.И я думаю, что могу объяснить свою озабоченность.Последнее, что я попробовал, это
ColorStyle colorstyle2 = MyAddin.AddinModule.CurrentInstance.SelectedColorStyle;
int setColor = ColorTranslator.ToOle(System.Drawing.Color.FromArgb(colorstyle2.R, colorstyle2.G, colorstyle2.B));
int position = app.ActiveWindow.Selection.ShapeRange.ZOrderPosition;
Slide slide2 = (Slide)app.ActiveWindow.View.Slide;// SELECTS CHART FROM SHAPE RANGE AS SELECTION HAS SHAPERANGE not shape
powerPoint.Shape s = slide2.Shapes[position];
if (s.HasChart==MsoTriState.msoTrue)
{
object cht = s.GetType().InvokeMember("Chart", BindingFlags.GetProperty, null, (object)s, null);
object chtFormat = cht.GetType().InvokeMember("Format", BindingFlags.GetProperty, null, (object)cht, null);
object chtFill = cht.GetType().InvokeMember("Fill", BindingFlags.GetProperty, null, (object)chtFormat, null);
object chtBackcolor = chtFill.GetType().InvokeMember("Backcolor", BindingFlags.GetProperty, null, (object)chtFill, null);
object[] args = { 0 };//also used {0} here
object chtRGB = chtBackcolor.GetType().InvokeMember("RGB", BindingFlags.SetProperty, null, (object)chtBackcolor, args);
}