LayoutTransformer
Представляет элемент управления, который применяет преобразование макета к своему содержимому.
Наследует: ContentControl
Конструкторы
public LayoutTransformer()
layoutTransformer = LayoutTransformer()
Инициализирует новый экземпляр класса LayoutTransformer.
Свойства
private FrameworkElement Child { get; }
value = layoutTransformer.Child
Это приводит к трансформации детского элемента.
public Transform LayoutTransform { get; set; }
value = layoutTransformer.LayoutTransform
layoutTransformer.LayoutTransform = value
Получает или устанавливает преобразование макета для применения на LayoutTransformer контрольный контент.
Методы
public void ApplyLayoutTransform()
layoutTransformer.ApplyLayoutTransform()
Применяет преобразование макета к содержимому элемента управления LayoutTransformer.
protected override Size ArrangeOverride(Size finalSize)
result = layoutTransformer.ArrangeOverride(finalSize)
Обеспечивает поведение для этапа «Упорядочить» макета.
- finalSize
- Последняя область внутри родительского элемента, которую этот элемент должен использовать для упорядочения себя и своих дочерних элементов.
Возвращает: Используемый фактический размер.
private Size ComputeLargestTransformedSize(Size arrangeBounds)
result = layoutTransformer.ComputeLargestTransformedSize(arrangeBounds)
Вычислите наибольший полезный размер (наибольшую площадь) после применения преобразования к указанным границам.
- arrangeBounds
- Расставить границы.
Возвращает: Максимально возможный размер.
private static void DiagnosticWriteLine(string message)
LayoutTransformer.DiagnosticWriteLine(message)
Выводит диагностическую информацию, если DIAGNOSTICWRITELINE определена.
- message
- Диагностическое сообщение.
private Matrix GetTransformMatrix(Transform transform)
result = layoutTransformer.GetTransformMatrix(transform)
Обходит Transform(Group) и возвращает соответствующую матрицу.
- transform
- Transform(Group) для ходьбы.
Возвращает: Вычисленная матрица.
private static bool IsSizeSmaller(Size a, Size b)
result = LayoutTransformer.IsSizeSmaller(a, b)
Возвращает true, если размер a меньше размера b в любом измерении.
- a
- Второй размер.
- b
- Первый размер.
Возвращает: Истинно, если размер a меньше размера b в любом измерении.
private static void LayoutTransformChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
LayoutTransformer.LayoutTransformChanged(o, e)
Обрабатывает изменения в Transform DependencyProperty.
- o
- Источник изменения.
- e
- Аргументы события.
private static bool MatrixHasInverse(Matrix matrix)
result = LayoutTransformer.MatrixHasInverse(matrix)
Реализует Matrix.HasInverse WPF в Silverlight.
- matrix
- Матрица для проверки на обратную.
Возвращает: Истинно, если Матрица имеет обратную.
private static Matrix MatrixMultiply(Matrix matrix1, Matrix matrix2)
result = LayoutTransformer.MatrixMultiply(matrix1, matrix2)
Реализует Matrix.Multiply WPF в Silverlight.
- matrix1
- Первая матрица.
- matrix2
- Вторая матрица.
Возвращает: Результат умножения.
protected override Size MeasureOverride(Size availableSize)
result = layoutTransformer.MeasureOverride(availableSize)
Обеспечивает поведение для прохода макета «Измерение».
- availableSize
- Доступный размер, который этот элемент может передать дочерним элементам.
Возвращает: Размер, который этот элемент определяет, необходимый ему во время макета, на основе расчетов размеров дочерних элементов.
public override void OnApplyTemplate()
layoutTransformer.OnApplyTemplate()
Строит визуальное дерево для элемента управления LayoutTransformer при применении нового шаблона.
private void ProcessTransform(Transform transform)
layoutTransformer.ProcessTransform(transform)
Обрабатывает преобразование для определения соответствующей матрицы.
- transform
- Преобразование в процесс.
private static Rect RectTransform(Rect rect, Matrix matrix)
result = LayoutTransformer.RectTransform(rect, matrix)
Реализует Rect.Transform WPF в Silverlight.
- rect
- Прямоугольник для трансформации.
- matrix
- Матрица для преобразования.
Возвращает: Ограничивающая рамка преобразованного Rect.
private static Matrix RoundMatrix(Matrix matrix, int decimals)
result = LayoutTransformer.RoundMatrix(matrix, decimals)
Округляет несмещенные элементы матрицы, чтобы избежать проблем, связанных с неточностью чисел с плавающей запятой.
- matrix
- Матрица для округления.
- decimals
- Количество десятичных знаков, до которого нужно округлить.
Возвращает: Скругленная матрица.
Поля
private const double AcceptableDelta
value = LayoutTransformer.AcceptableDelta
Приемлемая разница между двумя дублями.
private const int DecimalsAfterRound
value = LayoutTransformer.DecimalsAfterRound
Число десятичных знаков, до которого нужно округлить матрицу.
public static readonly DependencyProperty LayoutTransformProperty
value = LayoutTransformer.LayoutTransformProperty
Идентифицирует LayoutTransform DependencyProperty.
private const string PresenterName
value = LayoutTransformer.PresenterName
Имя части шаблона Presenter.
private const string TransformRootName
value = LayoutTransformer.TransformRootName
Имя части шаблона TransformRoot.
private Size _childActualSize
value = layoutTransformer._childActualSize
Фактический DesiredSize дочернего элемента (значение, которое он вернул из своего метода MeasureOverride).
private ContentPresenter _contentPresenter
value = layoutTransformer._contentPresenter
ContentPresenter элемент для отображения контента.
private MatrixTransform _matrixTransform
value = layoutTransformer._matrixTransform
RenderTransform/MatrixTransform применяется к _transformRoot.
private Matrix _transformation
value = layoutTransformer._transformation
Матрица преобразования, соответствующая _matrixTransform.
private Panel _transformRoot
value = layoutTransformer._transformRoot
Корневой элемент для выполнения преобразований.