C# 添加OnClick操作以在MS PowerPoint中塑造对象

C# 添加OnClick操作以在MS PowerPoint中塑造对象,c#,wpf-controls,powerpoint,office-addins,powerpoint-2010,C#,Wpf Controls,Powerpoint,Office Addins,Powerpoint 2010,我需要在Office 2010及更高版本的Micro Soft Power Point Addin中添加一个OnClick动作来塑造对象,该插件使用C#语言构建。有这样的事件 SlideSelectionChanged WindowBeforeRightClick 这不符合需要,右键单击事件甚至不适用于形状对象 有没有订阅此类事件的方法,我不喜欢使用宏,但是如果这是不可避免的,我会使用它。此解决方案可行 private void ThisAddIn_Startup(object sender

我需要在Office 2010及更高版本的Micro Soft Power Point Addin中添加一个OnClick动作来塑造对象,该插件使用C#语言构建。有这样的事件

SlideSelectionChanged

WindowBeforeRightClick
这不符合需要,右键单击事件甚至不适用于形状对象


有没有订阅此类事件的方法,我不喜欢使用宏,但是如果这是不可避免的,我会使用它。

此解决方案可行

private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.WindowSelectionChange += OnWindowSelectionChanged;
    }

void OnWindowSelectionChanged(PowerPoint.Selection Sel)
    {
        if (Sel.Type == PowerPoint.PpSelectionType.ppSelectionShapes)
        {
             PowerPoint.ShapeRange shapeRange = Sel.ShapeRange;
             //Do some work
        }
    }

private void ThisAddIn_ShutDown(object sender, System.EventArgs e)
    {
        this.Application.WindowSelectionChange -= OnWindowSelectionChanged;
    }
通过使用AltText-like设置一些标志来确保只在所需的形状对象上执行所需的操作,这是很好的

if (Sel.ShapeRange.AlternativeText.Contains("SomeFlag"))
   {
      //Do some thing
   }

这个解决方案会奏效

private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.WindowSelectionChange += OnWindowSelectionChanged;
    }

void OnWindowSelectionChanged(PowerPoint.Selection Sel)
    {
        if (Sel.Type == PowerPoint.PpSelectionType.ppSelectionShapes)
        {
             PowerPoint.ShapeRange shapeRange = Sel.ShapeRange;
             //Do some work
        }
    }

private void ThisAddIn_ShutDown(object sender, System.EventArgs e)
    {
        this.Application.WindowSelectionChange -= OnWindowSelectionChanged;
    }
通过使用AltText-like设置一些标志来确保只在所需的形状对象上执行所需的操作,这是很好的

if (Sel.ShapeRange.AlternativeText.Contains("SomeFlag"))
   {
      //Do some thing
   }

最近有一个类似的问题。它是关于excel的,但许多API在MS Office产品上都是相同的。最近有一个类似的问题。它是关于excel的,但许多API在MS Office产品上是相同的。