public ItemPropertiesDescriptor( ItemContent content ) { myOwner = content; if ( content.Properties != null ) { myProperties = content.Properties; } else { myProperties = new ItemPropertyCollection(); } }
internal string Save() { var container = new ItemContent(); var innerContent = Content; try { Content = null; container.Content = innerContent; container.Properties = Properties; return XamlWriter.Save( container ); } finally { container.Content = null; container.Properties = null; Content = innerContent; } }
private void Group_Executed( object sender, ExecutedRoutedEventArgs e ) { var items = from item in this.SelectionService.CurrentSelection.OfType<DesignerItem>() where item.ParentID == Guid.Empty select item; Rect rect = GetBoundingRectangle( items ); var groupItem = new DesignerItem(); groupItem.IsGroup = true; groupItem.Width = rect.Width; groupItem.Height = rect.Height; Canvas.SetLeft( groupItem, rect.Left ); Canvas.SetTop( groupItem, rect.Top ); var itemContent = new ItemContent(); // TODO: copy does NOT work // itemContent.Properties = new ItemPropertyCollection( items.SelectMany( item => ((ItemContent)item.Content).Properties ) ); groupItem.Content = itemContent; Canvas.SetZIndex( groupItem, Children.Count ); Children.Add( groupItem ); foreach( var item in items ) { item.ParentID = groupItem.ID; } SelectionService.SelectItem( this, groupItem ); }
// backward compatibility code private void UpgradeItemContent( ItemContent content ) { if( content.Properties.Any( p => p.ElementName == "ClassName" ) ) { ( ( Border )content.Content ).Name = "Body"; content.Properties.Add( new ItemProperty { ElementName = "Body", ElementProperty = "Background", DisplayName = "Fill", IsComponentName = false } ); return; } if( content.Properties.Any( p => p.ElementName == "ObjectName" ) ) { ( ( Border )content.Content ).Name = "Body"; content.Properties.Add( new ItemProperty { ElementName = "Body", ElementProperty = "Background", DisplayName = "Fill", IsComponentName = false } ); return; } if( content.Properties.Any( p => p.ElementName == "Question" ) ) { var grid = ( Grid )content.Content; var path = grid.Children.OfType<System.Windows.Shapes.Path>().Single(); path.Name = "Body"; content.Properties.Add( new ItemProperty { ElementName = "Body", ElementProperty = "Fill", DisplayName = "Fill", IsComponentName = false } ); return; } }
public static ItemContentTemplate Create( ItemContent template ) { var blob = template.Save(); return new ItemContentTemplate( blob ); }