#wpf
#wpf
Вопрос:
У меня есть текст с некоторыми свойствами (ширина, высота, текст по умолчанию) в конструкторе XAML, в сценарии выполнения я изменил некоторые свойства для спецификации. Как откатить изменения к исходному состоянию, аналогичному пользовательскому интерфейсу, который изначально разработан в окне xaml, с помощью нажатия кнопки во время выполнения.
Комментарии:
1. эти значения нигде не хранятся, поэтому вам придется сохранять их регулярно, перезагружать полное окно или создавать новый элемент управления при перемещении измененного элемента
Ответ №1:
Исходные значения нигде не хранятся, поэтому некоторые идеи о том, что вы могли бы сделать:
- Если вы используете MVVM, вы могли бы установить
DataContext
для нового экземпляра - Если вы используете исходный код, вы могли бы создать новый экземпляр
UserControl
/Window
- Вы могли бы сохранить исходные значения вручную и написать метод для установки этих свойств в их значения по умолчанию
-
Вы могли бы использовать класс DefaultValueAttribute для определения значений по умолчанию, вот пример кода того, как его можно использовать, приведенный в документах:
[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());
С помощью этого вы могли бы легко написать статический метод для установки каждому свойству значения по умолчанию.