/// <summary> /// Creates the image control. /// </summary> /// <param name="property"> /// The property. /// </param> /// <returns> /// The control. /// </returns> protected FrameworkElement CreateImageControl(PropertyItem property) { var c = new Image { Stretch = Stretch.Uniform, HorizontalAlignment = HorizontalAlignment.Left }; c.SetBinding(Image.SourceProperty, property.CreateOneWayBinding()); return(c); }
/// <summary> /// Creates a control based on a template from a a <see cref="TypeEditor" />. /// </summary> /// <param name="property">The property.</param> /// <param name="editor">The editor.</param> /// <returns> /// A <see cref="ContentControl" />. /// </returns> protected virtual ContentControl CreateEditorControl(PropertyItem property, TypeEditor editor) { var c = new ContentControl { ContentTemplate = editor.EditorTemplate, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Left }; c.SetBinding(FrameworkElement.DataContextProperty, property.CreateOneWayBinding()); return(c); }
/// <summary> /// Creates the control for a property. /// </summary> /// <param name="property"> /// The property item. /// </param> /// <param name="options"> /// The options. /// </param> /// <returns> /// A element. /// </returns> public virtual FrameworkElement CreateControl(PropertyItem property, PropertyControlFactoryOptions options) { this.UpdateConverter(property); foreach (var editor in this.Editors) { if (editor.IsAssignable(property.Descriptor.PropertyType)) { var c = new ContentControl { ContentTemplate = editor.EditorTemplate, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Left }; c.SetBinding(FrameworkElement.DataContextProperty, property.CreateOneWayBinding()); return(c); } } if (property.Is(typeof(bool))) { return(this.CreateBoolControl(property)); } if (property.Is(typeof(Enum))) { return(this.CreateEnumControl(property, options)); } if (property.Is(typeof(Color))) { return(this.CreateColorControl(property)); } if (property.Is(typeof(Brush))) { return(this.CreateBrushControl(property)); } if (property.Is(typeof(FontFamily))) { return(this.CreateFontFamilyControl(property)); } if (property.Is(typeof(ImageSource)) || property.DataTypes.Contains(DataType.ImageUrl)) { return(this.CreateImageControl(property)); } if (property.DataTypes.Contains(DataType.Html)) { return(this.CreateHtmlControl(property)); } if (property.Is(typeof(Uri))) { return(this.CreateLinkControl(property)); } if (property.ItemsSourceDescriptor != null) { return(this.CreateComboBoxControl(property)); } if (property.Is(typeof(SecureString))) { return(this.CreateSecurePasswordControl(property)); } if (this.UseDatePicker && property.Is(typeof(DateTime))) { return(this.CreateDateTimeControl(property)); } if (property.IsFilePath) { return(this.CreateFilePathControl(property)); } if (property.IsDirectoryPath) { return(this.CreateDirectoryPathControl(property)); } if (property.PreviewFonts) { return(this.CreateFontPreview(property)); } if (property.IsComment) { return(this.CreateCommentControl(property)); } if (property.IsPassword) { return(this.CreatePasswordControl(property)); } if (property.IsSlidable) { return(this.CreateSliderControl(property)); } if (property.IsSpinnable) { return(this.CreateSpinControl(property)); } if (property.Is(typeof(IList))) { return(this.CreateGridControl(property)); } if (property.Is(typeof(IDictionary))) { return(this.CreateDictionaryControl(property)); } return(this.CreateDefaultControl(property)); }