Значение по умолчанию для системы.Рисунок.Системные цвета
-
09-06-2019 - |
Вопрос
У меня есть свойство line color в моем пользовательском элементе управления grid.Я хочу, чтобы по умолчанию он был равен Drawing.SystemColors.InactiveBorder
.Я пытался:
[DefaultValue(typeof(System.Drawing.SystemColors), "InactiveBorder")]
public Color LineColor { get; set; }
Но, похоже, это не работает.Как мне сделать это с атрибутом value по умолчанию?
Решение
Это может помочь: http://support.microsoft.com/kb/311339 -- статья объемом в КБ, озаглавленная "Документация MSDN для класса DefaultValueAttribute может вводить в заблуждение"
Другие советы
Вам нужно изменить первый аргумент с SystemColors
Для Color
.
Похоже, что для преобразователя типов не существует SystemColors
введите, только для Color
Тип.
[DefaultValue(typeof(Color),"InactiveBorder")]
Согласно ссылке, опубликованной Мэттом, атрибут defaultValue не устанавливает значение свойства по умолчанию, он просто позволяет разработчику форм знать, что свойство имеет значение по умолчанию.Если вы изменяете свойство по сравнению со значением по умолчанию, оно выделяется жирным шрифтом в окне свойств.
Вы не можете установить значение по умолчанию с помощью автоматических свойств - вам придется сделать это по старинке:
class MyClass
{
Color lineColor = SystemColors.InactiveBorder;
[DefaultValue(true)]
public Color LineColor {
get {
return lineColor;
}
set {
lineColor = value;
}
}
}