У меня есть ContentControl
, и у него есть несколько пользовательских Propertities
. Сам элемент управления работает нормально, но мне нравится обновлять его интерфейс во время разработки в редакторе XAML. Проблема заключается в следующем: обновление пользовательского интерфейса элемента управления, если я изменю его Size
(SizeChanged event
сделает это), но я не могу найти способ сделать это, если CustomProperty
подобно OffsetX
изменяется во время разработки.
Итак, как изменить следующий код, чтобы это произошло? Не слишком удобно обновлять интерфейс управления, меняя его размер каждый раз.
public sealed class MyControlElement: ContentControl
{
//
//SOME INITIALIZE CODE IS HERE
//
public MyControlElement() => DefaultStyleKey = typeof(MyControlElement);
protected override void OnApplyTemplate()
{
//
//SOME INITIALIZE CODE IS HERE
//
base.OnApplyTemplate();
}
//OFFSET X DESCRIPTION
[Description("OffsetX"), Category("MyControlElementParameters"), Browsable(true)]
//OFFSET X
public int OffsetX
{
get
{
return (int)GetValue(OffsetXProperty);
}
set
{
if (OffsetX != value)
{
SetValue(OffsetXProperty, value);
OnOffsetXChanged(this, new EventArgs());
}
}
}
public static readonly DependencyProperty OffsetXProperty = DependencyProperty.Register("OffsetX", typeof(int), typeof(MyControlElement), PropertyMetadata.Create(0));
public event EventHandler OffsetXChanged;
private void OnOffsetXChanged(object sender, EventArgs e)
{
UpdateControlUI();
this.OffsetXChanged?.Invoke(this, e);
}
}