本文整理汇总了C#中PowerPointLabs.Models.PowerPointSlide.GetNameToShapeDictionary方法的典型用法代码示例。如果您正苦于以下问题:C# PowerPointSlide.GetNameToShapeDictionary方法的具体用法?C# PowerPointSlide.GetNameToShapeDictionary怎么用?C# PowerPointSlide.GetNameToShapeDictionary使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PowerPointLabs.Models.PowerPointSlide
的用法示例。
在下文中一共展示了PowerPointSlide.GetNameToShapeDictionary方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DeleteShapesMarkedForDeletion
private static void DeleteShapesMarkedForDeletion(PowerPointSlide candidate, List<string> markedForDeletion)
{
if (markedForDeletion.Count == 0) return;
var candidateSlideShapes = candidate.GetNameToShapeDictionary();
foreach (var shapeName in markedForDeletion)
{
Shape shapeInSlide;
bool shapeExists = candidateSlideShapes.TryGetValue(shapeName, out shapeInSlide);
if (!shapeExists || shapeInSlide == null) continue;
shapeInSlide.Delete();
candidateSlideShapes[shapeName] = null;
}
}
示例2: TrackShapesInSlide
/// <summary>
/// Tracks shapes in the slide metadata. (used for tracking deletions later on)
/// </summary>
private static void TrackShapesInSlide(PowerPointSlide slide)
{
var nameList = slide.GetNameToShapeDictionary().Keys.ToList();
slide.StoreDataInNotes(Common.SerializeCollection(nameList));
}
示例3: SyncShapesFromReferenceSlide
/// <summary>
/// Synchronises the shapes in the candidate slide with the shapes in the reference slide.
/// Adds any shape that exists in the reference slide but is missing in the candidate slide.
/// </summary>
private static void SyncShapesFromReferenceSlide(PowerPointSlide refSlide, PowerPointSlide candidate, List<string> markedForDeletion)
{
if (refSlide == null || candidate == null || refSlide == candidate)
{
return;
}
DeleteShapesMarkedForDeletion(candidate, markedForDeletion);
candidate.CopyBackgroundColourFrom(refSlide);
candidate.Layout = refSlide.Layout;
candidate.Design = refSlide.Design;
// synchronize extra shapes other than visual items in reference slide
var candidateSlideShapes = candidate.GetNameToShapeDictionary();
var extraShapes = refSlide.Shapes.Cast<Shape>()
.Where(shape => !PowerPointSlide.IsIndicator(shape) &&
!PowerPointSlide.IsTemplateSlideMarker(shape) &&
!candidateSlideShapes.ContainsKey(shape.Name))
.Select(shape => shape.Name)
.ToArray();
if (extraShapes.Length != 0)
{
var refShapes = refSlide.Shapes.Range(extraShapes);
CopyShapesTo(refShapes, candidate);
}
// synchronize shapes position and size, except bullet content
candidateSlideShapes = candidate.GetNameToShapeDictionary();
var sameShapes = refSlide.Shapes.Cast<Shape>()
.Where(shape => !PowerPointSlide.IsIndicator(shape) &&
!PowerPointSlide.IsTemplateSlideMarker(shape) &&
candidateSlideShapes.ContainsKey(shape.Name));
var shapeOriginalZOrders = new SortedDictionary<int, Shape>();
foreach (var refShape in sameShapes)
{
var candidateShape = candidateSlideShapes[refShape.Name];
Graphics.SyncWholeShape(refShape, ref candidateShape, candidate);
shapeOriginalZOrders.Add(refShape.ZOrderPosition, candidateShape);
}
SynchroniseZOrders(shapeOriginalZOrders);
}
示例4: RetrieveTrackedDeletions
/// <summary>
/// Retrieves tracked shapes from the slide metadata, finds out which shapes have been deleted by the user,
/// and returns the names of those deleted shapes.
/// </summary>
private static List<string> RetrieveTrackedDeletions(PowerPointSlide slide)
{
var retrievedNameList = Common.UnserializeCollection(slide.RetrieveDataFromNotes());
if (retrievedNameList == null) return new List<string>();
var currentNames = slide.GetNameToShapeDictionary();
return retrievedNameList.Where(name => !currentNames.ContainsKey(name)).ToList();
}