【发布时间】:2014-01-03 06:39:05
【问题描述】:
我有一个继承自 TextBox 的 CustomControl,它在设计时将其放置到窗口时未设置其 Width 属性。默认情况下,TextBox 在设计时要求 Width 为 120。
如何将控件宽度默认设置为 120?
更适合控制开发的解决方案(如果存在)
【问题讨论】:
标签: c# wpf properties controls
我有一个继承自 TextBox 的 CustomControl,它在设计时将其放置到窗口时未设置其 Width 属性。默认情况下,TextBox 在设计时要求 Width 为 120。
如何将控件宽度默认设置为 120?
更适合控制开发的解决方案(如果存在)
【问题讨论】:
标签: c# wpf properties controls
你可以尝试使用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 和 Microsoft.Windows.Design.Interaction
【讨论】: