本文整理汇总了C#中PropertyItem.Is方法的典型用法代码示例。如果您正苦于以下问题:C# PropertyItem.Is方法的具体用法?C# PropertyItem.Is怎么用?C# PropertyItem.Is使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PropertyItem
的用法示例。
在下文中一共展示了PropertyItem.Is方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateControl
public override FrameworkElement CreateControl(PropertyItem pi, PropertyControlFactoryOptions options)
{
if (pi.Is(typeof(IValueWithSource)))
{
return CreateComboBox(pi, options);
}
return base.CreateControl(pi, options);
}
示例2: CreateControl
public override FrameworkElement CreateControl(PropertyItem pi, PropertyControlFactoryOptions options)
{
// Check if the property is of type Range
if (pi.Is(typeof(IValueWithSource)))
{
// Create a control to edit the Range
return this.CreateComboBox(pi, options);
}
return base.CreateControl(pi, options);
}
示例3: CreateControl
/// <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);
}
//.........这里部分代码省略.........
示例4: CreateControl
/// <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))
{
return this.CreateEditorControl(property, editor);
}
}
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)) || property.IsFontFamilySelector)
{
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 || property.ItemsSource != 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.IsContent)
{
return this.CreateContentControl(property);
}
//.........这里部分代码省略.........
示例5: SetProperties
/// <summary>
/// Sets the properties.
/// </summary>
/// <param name="pi">
/// The property item.
/// </param>
protected virtual void SetProperties(PropertyItem pi)
{
var pd = pi.Descriptor;
var properties = pi.Properties;
var tabName = this.DefaultTabName ?? pi.Instance.GetType().Name;
var categoryName = this.DefaultCategoryName;
// find the declaring type
Type declaringType = pi.Descriptor.ComponentType;
var propertyInfo = pi.Instance.GetType().GetProperty(pi.Descriptor.Name);
if (propertyInfo != null)
{
declaringType = propertyInfo.DeclaringType;
}
if (declaringType != this.CurrentDeclaringType)
{
this.CurrentCategory = null;
}
this.CurrentDeclaringType = declaringType;
if (!this.InheritCategories)
{
this.CurrentCategory = null;
}
var ca = AttributeHelper.GetFirstAttribute<CategoryAttribute>(pd);
if (ca != null)
{
this.CurrentCategory = ca.Category;
this.CurrentCategoryDeclaringType = declaringType;
}
var category = this.CurrentCategory ?? (this.DefaultCategoryName ?? pd.Category);
if (category != null)
{
var items = category.Split('|');
if (items.Length == 2)
{
tabName = items[0];
categoryName = items[1];
}
if (items.Length == 1)
{
categoryName = items[0];
}
}
var displayName = this.GetDisplayName(pd, declaringType);
var description = this.GetDescription(pd, declaringType);
pi.DisplayName = this.GetLocalizedString(displayName, declaringType);
pi.Description = this.GetLocalizedDescription(description, declaringType);
pi.Category = this.GetLocalizedString(categoryName, this.CurrentCategoryDeclaringType);
pi.CategoryDescription = this.GetLocalizedDescription(categoryName, this.CurrentCategoryDeclaringType);
pi.Tab = this.GetLocalizedString(tabName, this.CurrentCategoryDeclaringType);
pi.TabDescription = this.GetLocalizedDescription(tabName, this.CurrentCategoryDeclaringType);
// Find descriptors by convention
pi.IsEnabledDescriptor = pi.GetDescriptor(string.Format(this.EnabledPattern, pd.Name));
pi.IsVisibleDescriptor = pi.GetDescriptor(string.Format(this.VisiblePattern, pd.Name));
pi.OptionalDescriptor = pi.GetDescriptor(string.Format(this.OptionalPattern, pd.Name));
pi.UseRadioButtons = pi.GetAttribute<RadioButtonsAttribute>() != null;
var fp = pi.GetAttribute<FontPreviewAttribute>();
pi.PreviewFonts = fp != null;
if (fp != null)
{
pi.FontSize = fp.Size;
pi.FontWeight = fp.Weight;
pi.FontFamilyPropertyDescriptor = pi.GetDescriptor(fp.FontFamilyPropertyName);
}
var fpa = pi.GetAttribute<FilePathAttribute>();
pi.IsFilePath = fpa != null;
if (fpa != null)
{
pi.FilePathFilter = fpa.Filter;
pi.FilePathDefaultExtension = fpa.DefaultExtension;
pi.IsFileOpenDialog = fpa.UseOpenDialog;
}
var dpa = pi.GetAttribute<DirectoryPathAttribute>();
pi.IsDirectoryPath = dpa != null;
foreach (var da in pi.GetAttributes<DataTypeAttribute>())
{
pi.DataTypes.Add(da.DataType);
switch (da.DataType)
//.........这里部分代码省略.........