Я расширил ContentControl, который хочу использовать в качестве DialogHeader, и следую тому, как я это сделал. это в прошлом, но, возможно, я делаю это неправильно:
Вот что у меня есть:
DialogHeader.cs
Код: Выделить всё
public static class DialogHeader
{
static DialogHeader()
{
AllowDraggingProperty = AllowDraggingPropertyKey.DependencyProperty;
}
#region - AllowDragging -
public static readonly DependencyProperty AllowDraggingProperty;
private static readonly DependencyPropertyKey AllowDraggingPropertyKey =
DependencyProperty.RegisterAttachedReadOnly("AllowDragging", typeof(bool), typeof(DialogHeader),
new PropertyMetadata(false));
public static bool GetAllowDragging(FrameworkElement element)
{
return element is null
? throw new ArgumentNullException(nameof(element))
: (bool)element.GetValue(AllowDraggingProperty);
}
public static void SetAllowDragging(FrameworkElement element, bool value)
{
if (element is null)
throw new ArgumentNullException(nameof(element));
element.SetValue(AllowDraggingProperty, value);
}
#endregion - AllowDragging -
}
Код: Выделить всё
Код: Выделить всё
В рамках этого я я создаю окно, в котором показаны все стили и шаблоны, поэтому в MainWindow выше есть элемент управления вкладками.
Проблема, с которой я сталкиваюсь в данный момент, заключается в запуске приложения, я нажимаю это исключение:
InvalidOperationException: свойство «AllowDragged» зарегистрировано как
только для чтения и не может быть изменено без ключа авторизации.
Я предполагаю, что это вызвано моей настройкой, но это работало и в других случаях, когда я это реализовал, я никогда раньше не видел исключения ReadOnly.
Подробнее здесь: https://stackoverflow.com/questions/790 ... and-usages
Мобильная версия