本文整理汇总了C#中PowerPointLabs.Models.PowerPointSlide.SetShapeAsClickTriggered方法的典型用法代码示例。如果您正苦于以下问题:C# PowerPointSlide.SetShapeAsClickTriggered方法的具体用法?C# PowerPointSlide.SetShapeAsClickTriggered怎么用?C# PowerPointSlide.SetShapeAsClickTriggered使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PowerPointLabs.Models.PowerPointSlide
的用法示例。
在下文中一共展示了PowerPointSlide.SetShapeAsClickTriggered方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EmbedOnSlide
// before we embed we need to check if we have any old shape on the slide. If
// we have, we need to delete it AFTER the new shape is inserted to preserve
// the original timeline.
public void EmbedOnSlide(PowerPointSlide slide, int clickNumber)
{
var isOnClick = clickNumber > 0;
var shapeName = Name;
if (slide != null)
{
// embed new shape using two-turn method. In the first turn, embed the shape, name it to
// something special to distinguish from the old shape; in the second turn, delete the
// old shape using timeline invariant deletion, and rename the new shape to the correct
// name.
try
{
var audioShape = AudioHelper.InsertAudioFileOnSlide(slide, SaveName);
audioShape.Name = "#";
slide.RemoveAnimationsForShape(audioShape);
if (isOnClick)
{
slide.SetShapeAsClickTriggered(audioShape, clickNumber, MsoAnimEffect.msoAnimEffectMediaPlay);
}
else
{
slide.SetAudioAsAutoplay(audioShape);
}
// delete old shape
slide.DeleteShapesWithPrefixTimelineInvariant(Name);
audioShape.Name = shapeName;
}
catch (COMException)
{
// Adding the file failed for one reason or another - probably cancelled by the user.
}
}
else
{
MessageBox.Show("Slide selection error");
}
}
示例2: EmbedSlideNotes
/// <summary>
/// This function will embed the auto generated speech to the current slide.
/// File names of generated audios will be returned.
/// </summary>
/// <param name="slide">Current slide reference.</param>
/// <returns>An array of auto generated audios' name.</returns>
private static string[] EmbedSlideNotes(PowerPointSlide slide)
{
String folderPath = Path.GetTempPath() + TempFolderName;
String fileNameSearchPattern = String.Format("Slide {0} Speech", slide.ID);
Directory.CreateDirectory(folderPath);
// TODO:
// obviously deleting all audios in current slide may not a good idea, some lines of script
// may still be the same. Check the line first before deleting, if the line has not been
// changed, leave the audio.
// to avoid duplicate records, delete all old audios in the current slide
var audiosInCurrentSlide = Directory.GetFiles(folderPath);
foreach (var audio in audiosInCurrentSlide)
{
if (audio.Contains(fileNameSearchPattern))
{
try
{
File.Delete(audio);
}
catch (Exception e)
{
Logger.LogException(e, "Failed to delete audio, it may be still playing. " + e.Message);
}
}
}
bool isSaveSuccessful = OutputSlideNotesToFiles(slide, folderPath);
string[] audioFiles = null;
if (isSaveSuccessful)
{
slide.DeleteShapesWithPrefix(SpeechShapePrefix);
audioFiles = GetAudioFilePaths(folderPath, fileNameSearchPattern);
for (int i = 0; i < audioFiles.Length; i++)
{
String fileName = audioFiles[i];
bool isOnClick = fileName.Contains("OnClick");
try
{
Shape audioShape = InsertAudioFileOnSlide(slide, fileName);
audioShape.Name = String.Format("PowerPointLabs Speech {0}", i);
slide.RemoveAnimationsForShape(audioShape);
if (isOnClick)
{
slide.SetShapeAsClickTriggered(audioShape, i, MsoAnimEffect.msoAnimEffectMediaPlay);
}
else
{
slide.SetAudioAsAutoplay(audioShape);
}
}
catch (COMException)
{
// Adding the file failed for one reason or another - probably cancelled by the user.
}
}
}
return audioFiles;
}