private bool CopyProperties() { PropertyDictionary propDict = new PropertyDictionary(); // Check whether the user has selected a category item GridItem selItem = propertyGrid.SelectedGridItem; if (selItem == null) return false; if (selItem.GridItemType == GridItemType.Category) { // Collect all properties of this category foreach (GridItem propertyItem in selItem.GridItems) { if (propertyItem.GridItemType != GridItemType.Property) continue; // Skip empty property values (which typically corresponds to a "mixed" value when multiple // shapes are selected) if (propertyItem.Value == null) continue; // Skip read-only properties if (propertyItem.PropertyDescriptor != null && propertyItem.PropertyDescriptor.IsReadOnly) continue; propDict.AddProperty(propertyItem.Label, propertyItem.Value); } if (!propDict.Empty) { // Copy the property values to the clipboard EditorManager.Clipboard.Data = EditorClipboard.CreateDataObject(propDict, "Shape Properties"); } return true; } else if (selItem.GridItemType == GridItemType.Property) { // Do not copy properties for layer if (SelectedObject is Layer) { EditorManager.Clipboard.Data = null; //clear clipboarddata return true; } // Skip empty property values (which typically corresponds to a "mixed" value when multiple // shapes are selected) if (selItem.Value != null) { // Do not copy dynamicproperties if (selItem.Value is CSharpFramework.DynamicProperties.DynamicPropertyCollection) { EditorManager.Clipboard.Data = null; //clear clipboarddata return true; } EditorManager.Clipboard.Data = EditorClipboard.CreateDataObject(new PropertyKeyValuePair(selItem.Label, selItem.Value), "Shape Single Property"); } return true; } else { EditorManager.Clipboard.Data = null; //clear clipboarddata return true; } }
private bool CopyProperties() { PropertyDictionary propDict = new PropertyDictionary(); // Check whether the user has selected a category item GridItem selItem = propertyGrid.SelectedGridItem; if (selItem == null) { return(false); } if (selItem.GridItemType == GridItemType.Category) { // Collect all properties of this category foreach (GridItem propertyItem in selItem.GridItems) { if (propertyItem.GridItemType != GridItemType.Property) { continue; } // Skip empty property values (which typically corresponds to a "mixed" value when multiple // shapes are selected) if (propertyItem.Value == null) { continue; } // Skip read-only properties if (propertyItem.PropertyDescriptor != null && propertyItem.PropertyDescriptor.IsReadOnly) { continue; } propDict.AddProperty(propertyItem.Label, propertyItem.Value); } if (!propDict.Empty) { // Copy the property values to the clipboard EditorManager.Clipboard.Data = EditorClipboard.CreateDataObject(propDict, "Shape Properties"); } return(true); } else if (selItem.GridItemType == GridItemType.Property) { // Do not copy properties for layer if (SelectedObject is Layer) { EditorManager.Clipboard.Data = null; //clear clipboarddata return(true); } // Skip empty property values (which typically corresponds to a "mixed" value when multiple // shapes are selected) if (selItem.Value != null) { // Do not copy dynamicproperties if (selItem.Value is CSharpFramework.DynamicProperties.DynamicPropertyCollection) { EditorManager.Clipboard.Data = null; //clear clipboarddata return(true); } EditorManager.Clipboard.Data = EditorClipboard.CreateDataObject(new PropertyKeyValuePair(selItem.Label, selItem.Value), "Shape Single Property"); } return(true); } else { EditorManager.Clipboard.Data = null; //clear clipboarddata return(true); } }