如何设置默认值继承CustomControl?

时间:2013-12-15 23:36:19

标签: c# wpf properties controls

我有一个继承自TextBox的CustomControl,它在设计时将其放置到窗口时没有设置其Width属性。默认情况下,TextBox在设计时需要Width为120。

默认情况下如何将控制宽度设置为120?

如果存在控制的开发,解决方案更正确

1 个答案:

答案 0 :(得分:1)

您可以尝试使用DefaultInitializer class:

/*
** In your custom control class
*/

using Microsoft.Windows.Design.Features;
// ...

[Feature(typeof(CustomTextBoxDefaults))]
public class CustomTextBox : TextBox
{
    /* ... */
}

/*
** CustomTextBoxDefaults provides default values for designer
*/

using Microsoft.Windows.Design.Model;
// ...

class CustomTextBoxDefaults : DefaultInitializer
{
    public override void InitializeDefaults(ModelItem item)
    {
        item.Properties["Width"].SetValue(120);
        // Setup other properties
    }
}

请注意,您应该向项目添加两个程序集:Microsoft.Windows.Design.Extensibility和Microsoft.Windows.Design.Interaction

您也可以阅读此主题:http://social.msdn.microsoft.com/Forums/en-US/1ce1184a-7b8c-40d1-ad52-71b2a6c9b3b6/wpf-designertoolbox-default-values?forum=vswpfdesigner