C# 如何使用OpenXMLSDK向演示文稿中的形状添加超链接

C# 如何使用OpenXMLSDK向演示文稿中的形状添加超链接,c#,openxml-sdk,C#,Openxml Sdk,我正在开发C#应用程序来创建PowerPoint演示文稿 我正在使用OpenXMLSDK2.0和MS Office PP 2007 我可以从模板中克隆幻灯片并在其上添加新形状 但是现在我想给我的形状添加一个超链接 我该怎么做 我发现了这一点:但我需要在运行时添加这些超链接 我已经试过了 SlidePart currentSlidePart = CloneSlidePart(presentationPart, slidePart); Slide s = currentSlidePart.Slide

我正在开发C#应用程序来创建PowerPoint演示文稿

我正在使用OpenXMLSDK2.0和MS Office PP 2007

我可以从模板中克隆幻灯片并在其上添加新形状

但是现在我想给我的形状添加一个超链接

我该怎么做

我发现了这一点:但我需要在运行时添加这些超链接

我已经试过了

SlidePart currentSlidePart = CloneSlidePart(presentationPart, slidePart);
Slide s = currentSlidePart.Slide;
currentSlidePart.AddHyperlinkRelationship(new System.Uri("myuri", System.UriKind.Absolute), true, "rId2");
然后我调用了创建形状的方法:

s.CommonSlideData.ShapeTree.Append(generateTextShape("some content", shape));
这就是方法:

 public static Shape generateTextShape(String input, ShapePosition shapePosition)
 {
            Shape shape1 = new Shape();
...
            D.HyperlinkOnClick hyperlinkOnClick1 = new D.HyperlinkOnClick() { Id = "rId2" };
            nonVisualDrawingProperties1.Append(hyperlinkOnClick1);
...
    return shape1;
}
现在,什么也没发生。。 我做错了什么,有什么建议吗

(类ShapePosition仅用于形状的x、y、宽度和高度)

致以最良好的祝愿

你说“什么都没发生”,所以我不想假设。请尝试以下几种想法:

1) 超链接以幻灯片放映模式显示。将演示文稿置于幻灯片放映模式(点击F5)-然后单击形状

2) 您是否将
非可视化绘图属性1
附加到
形状1
?要知道,右键单击PP2007中的形状并选择超链接。。。看看你的URL是否在那里。如果不存在,则需要确保在
generateShapeText
方法中将
nonvisualDrawingProperties 1
添加到
shape1

3) 如果URL在那里,但不起作用,可能您的关系ID不正确?? 在PP2007中,使用同一个文件,创建一个新的简单形状,添加一个新的超链接,使用新文件名保存它,并将这两个文件与生产力工具进行比较。您应该看到PP2007生成的新超链接和关系


您在
generateShapeText
中发布了部分代码。如果你能把完整的代码,这可能会帮助我们解决这个问题与你-干杯。

你好,塔特黑德,我已经忘记那个问题了,因为我解决了这个问题。对不起。这个问题的解决办法很简单。如果您对解决方案感兴趣,请告诉我!我稍后会更新我的问题。@Leviathan嗨。请更新您的问题并提供解决方案好吗?我碰巧遇到了同样的问题,您的解决方案将非常有用:)谢谢。@Leviathan似乎有很多人在想这里的解决方案是什么。如果你能发布你的答案,那就太棒了。它还允许其他人投票,如果这对他们有帮助的话,这对你来说是很酷的:)Thanks@russelrillema只要问一个新问题,链接到这个问题,然后发布你尝试过的内容和代码,它就会得到回答。酷,我只是在用电动工具尝试一到两件事情,如果我做得不对,我会这么做。谢谢