2013-12-15 24 views
0

我有一个从TextBox继承的CustomControl,它在设计时将它放置到窗口时未设置它的Width属性。在默认情况下,TextBox在设计时需要一个Width如何设置默认值为CustomControl继承?

如何将默认的控件宽度设置为120?

解决方案控制的发展更正确,是否存在

回答

1

您可以尝试使用DefaultInitializer类:

/* 
** 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和微软.Windows.Design.Interaction

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

+0

太棒了!它工作完美! – Lai32290