Я сделал пользовательский трекбар, в основном как упражнение. Я знаю, что мог / должен был просто унаследовать то, что мне нужно, вместо того, чтобы заново изобретать колесо, но я многому научился за время моей работы.
Теперь у меня много свойств, и все они отображаются в конструкторе, за исключением нескольких свойств изображения. Это то, что у меня есть, смоделировано на других рабочих свойствах (это целые и цвета, а что нет, и все они работают как положено ...), так что, возможно, я должен делать изображения другим способом. Итог, я не знаю, что я делаю:)
РЕДАКТИРОВАТЬ: Мой пользовательский элемент управления находится в решении Windows Forms (VC # 2008 Express), и, чтобы уточнить, моя проблема заключается в том, что некоторые свойства моего элемента управления (свойства изображения) не отображаются в вкладка свойств во время разработки.
РЕДАКТИРОВАТЬ 2: После прочтения на DependencyProperty и полностью не смог понять эту концепцию (я очень noob в программировании Codez или то, что вы, гуру, называет эту черную магию вуду ??). Я привык позволять среде IDE устранять все мои проблемы, и я был рад видеть, что среда IDE с радостью показывает мои другие свойства, такие как Color BarColor
, int Value
и т. Д. И т. Д. Почему Image LeftImage
будет другим, Многие стандартные элементы управления имеют свойства Image, и, возможно, мне наивно полагать, что IDE может понять все мои ошибки, но, конечно, ребята из Microsoft не создавали новый редактор каждый раз, когда им приходилось устанавливать свойство изображения в своих управления. Могу поспорить, что они что-то повторно использовали, что я тоже смогу сделать.
Я застрял: (
Вот мой дерьмовый CoD3Z в любом случае:
private Image _LeftImage;
/// <summary>
/// Sets the small image appearing to the left of the trackbar
/// </summary>
[Description("The small image appearing to the left of the trackbar"),
Category("Appearance"),
DefaultValue(typeof(Image),"null"),
Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public Image LeftImage
{
private get { return _LeftImage; }
set
{
if (value.Height != 16 || value.Width != 16)
{
_LeftImage = new Bitmap(value,new Size(16,16));
}
else _LeftImage = value;
Invalidate();
}
}
Кстати, в чем разница между DefaultValue и DefaultValueAttribute?
Спасибо за любые указатели и помощь!
/ Микаэл * * тысячу двадцать-один