Example #1
0
        /// <summary>Метод обратного вызова после изменения значения свойства.</summary>
        /// <param name="d">FrameworkElement иначе исключение.</param>
        /// <param name="e">Параметры изменения</param>
        private static void ProportionalChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            if (!(d is FrameworkElement element))
            {
                throw new ArgumentException("Must be a FrameworkElement");
            }

            /// Получение элемента сохраняющего пропорции.
            SizeChangedElement changedElement = GetSizeChangeElement(element);

            /// Если элемент не задан, то его создание и сохранение.
            if (changedElement == null)
            {
                SetSizeChangeElement(element, changedElement = new SizeChangedElement(element));
            }

            /// Передача нового значения пропорции.
            changedElement.SetWidthToHeight((double)e.NewValue);
        }
Example #2
0
 private static void SetSizeChangeElement(DependencyObject obj, SizeChangedElement value)
 {
     obj.SetValue(SizeChangeElementPropertyKey, value);
 }
Example #3
0
 /// <summary>Приватный сеттер AP-свойства SizeChangeElementPropertyKey.</summary>
 private static void SetSizeChangeElement(FrameworkElement obj, SizeChangedElement value)
 {
     obj.SetValue(SizeChangeElementPropertyKey, value);
 }