Значение по умолчанию для системы.Рисунок.Системные цвета

StackOverflow https://stackoverflow.com/questions/43738

Вопрос

У меня есть свойство 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;
        }
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top