如何重新初始化UI元素?

时间:2019-03-14 06:37:57

标签: wpf

我在XAML设计器中具有一些属性(宽度,高度,默认文本)的文本,在运行时方案中,我更改了一些属性以进行规范。如何将更改回滚到原始状态,如最初通过在运行时中单击按钮在xaml窗口中设计的UI。

1 个答案:

答案 0 :(得分:0)

原始值不会存储在任何地方,因此对您可以做什么有一些想法:

  • 如果您使用的是MVVM,则可以将DataContext设置为新实例
  • 如果您使用的是背后的代码,则可以创建UserControl / Window的新实例
  • 您可以手动存储原始值,并编写一种方法来将这些属性设置为其默认值
  • 您可以使用DefaultValueAttribute Class来定义默认值,这是文档中给出的一些示例代码:

    [DefaultValue(false)]
    public bool MyProperty
    {
        get
        {
            return _myVal;
        }
        set
        {
            _myVal = value;
        }
    }
    
    
    // Gets the attributes for the property.
    AttributeCollection attributes =
        TypeDescriptor.GetProperties(this)["MyProperty"].Attributes;
    
    /* Prints the default value by retrieving the DefaultValueAttribute 
     * from the AttributeCollection. */
    DefaultValueAttribute myAttribute =
        (DefaultValueAttribute) attributes[typeof(DefaultValueAttribute)];
    Console.WriteLine("The default value is: " + myAttribute.Value.ToString());
    

    使用此方法,您可以轻松地编写一个静态方法来将每个属性设置为其默认值。