【问题标题】:How to set default value to CustomControl inherited?如何将默认值设置为继承的 CustomControl?
【发布时间】:2014-01-03 06:39:05
【问题描述】:

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

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

更适合控制开发的解决方案(如果存在)

【问题讨论】:

    标签: c# wpf properties controls


    【解决方案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 和 Microsoft.Windows.Design.Interaction

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

    【讨论】:

      猜你喜欢
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      相关资源
      最近更新 更多