Xamarin.Forms общие свойства, методы и события элемента управления
Класс Xamarin.FormsVisualElement
является базовым классом для большинства элементов управления, используемых в Xamarin.Forms приложении. Класс VisualElement
определяет множество свойств, методов и событий , используемых в производных классах.
Свойства
Следующие свойства доступны для VisualElement
объектов.
AnchorX
Свойство AnchorX
— это значение, определяющее центральную double
точку на оси X для преобразований, таких как масштабирование и поворот. Значение по умолчанию — 0.5.
AnchorY
Это AnchorY
значение, определяющее центральную double
точку на оси Y для преобразований, таких как масштабирование и поворот. Значение по умолчанию — 0.5.
Background
Это Background
значение Brush
, позволяющее использовать кисти в качестве фона в любом элементе управления. Значение по умолчанию — Brush.Default
.
BackgroundColor
Свойство BackgroundColor
— это Color
свойство, определяющее цвет фона элемента управления. Если не задано, фон будет объектом по умолчанию Color
, который отображается как прозрачный.
Behaviors
Свойство Behaviors
является List
объектами Behavior
. Поведение позволяет подключать повторно используемые функциональные возможности к элементам, добавляя их в Behaviors
список. Дополнительные сведения о Behavior
классе см. в разделе Xamarin.Forms "Поведение".
Bounds
Свойство Bounds
— это объект, доступный только для Rectangle
чтения, который представляет пространство, занятое элементом управления. Значение Bounds
свойства назначается во время цикла макета. Содержит Rectangle
struct
полезные свойства и методы для тестирования пересечения и хранения прямоугольников. Дополнительные сведения см. в Xamarin.Forms API прямоугольника.
Clip
Свойство Clip
— это объект, определяющий Geometry
структуру содержимого элемента. Чтобы определить клип, используйте Geometry
объект, например EllipseGeometry
, чтобы задать свойство элемента Clip
. Будет видна только область, расположенная в пределах области геометрии. Дополнительные сведения см. в разделе Обрезка с помощью класса Geometry.
Effects
Свойство Effects
является List
объектами Effect
, унаследованными от Element
класса. Эффекты позволяют настраивать собственные элементы управления и обычно используются для небольших изменений стиля. Дополнительные сведения о классе см. в Effect
разделе Xamarin.Forms "Эффекты".
FlowDirection
Свойство FlowDirection
является значением FlowDirection
перечисления. Направление потока можно задать MatchParent
в значение , LeftToRight
или RightToLeft
определить порядок макета и направление. Свойство FlowDirection
обычно используется для поддержки языков, которые считывают справа налево.
Height
Свойство Height
— это значение, доступное только для double
чтения, которое описывает отрисованную высоту элемента управления. Свойство Height
вычисляется во время цикла макета и не может быть напрямую задано. Высоту элемента управления можно запросить с помощью свойства HeightRequest.
HeightRequest
Это HeightRequest
значение, определяющее нужную double
высоту элемента управления. Абсолютная высота элемента управления может не совпадать с запрошенным значением. Дополнительные сведения см. в разделе "Свойства запроса".
InputTransparent
Это InputTransparent
свойство определяет bool
, получает ли элемент управления входные данные пользователя. Значение по умолчанию — false
это обеспечение того, что элемент получает входные данные. Это свойство передается дочерним элементам при его установке. InputTransparent
Задание свойства true
для класса макета приведет ко всем элементам макета, не получающим входных данных.
IsEnabled
Свойство IsEnabled
— это значение, определяющее bool
, реагирует ли элемент управления на входные данные пользователя. Значение по умолчанию — true
. Если для этого свойства задано значение false, элемент управления не будет принимать входные данные пользователя.
IsFocused
Свойство IsFocused
представляет собой bool
значение, описывающее, является ли элемент управления в настоящее время объектом фокуса. Focus
Вызов метода в элементе управления приведет к IsFocused
значению true. Вызов метода присвоит этому свойству Unfocus
значение false.
IsTabStop
Свойство IsTabStop
— это bool
значение, определяющее, получает ли элемент управления фокус при переходе пользователя с помощью клавиши TAB. Если это свойство равно false, TabIndex
свойство не будет иметь эффекта.
IsVisible
Свойство IsVisible
— это bool
значение, определяющее, отображается ли элемент управления. Элементы управления со IsVisible
значением false не отображаются, не будут рассматриваться для вычислений пространства во время цикла макета и не могут принимать входные данные пользователя.
MinimumHeightRequest
Это MinimumHeightRequest
значение, определяющее double
, как переполнение обрабатывается, когда два элемента конкурируют за ограниченное пространство. MinimumHeightRequest
Задание свойства позволяет процессу макета масштабировать элемент до минимального запрошенного измерения. Если значение MinimumHeightRequest
по умолчанию не указано, значение по умолчанию равно -1, а процесс макета будет считаться HeightRequest
минимальным значением. Это означает, что элементы без MinimumHeightRequest
значения не будут иметь масштабируемую высоту.
Дополнительные сведения см. в разделе "Минимальные свойства запроса".
MinimumWidthRequest
Это MinimumWidthRequest
значение, определяющее double
, как переполнение обрабатывается, когда два элемента конкурируют за ограниченное пространство. MinimumWidthRequest
Задание свойства позволяет процессу макета масштабировать элемент до минимального запрошенного измерения. Если значение MinimumWidthRequest
по умолчанию не указано, значение по умолчанию равно -1, а процесс макета будет считаться WidthRequest
минимальным значением. Это означает, что элементы без MinimumWidthRequest
значения не будут иметь масштабируемую ширину.
Дополнительные сведения см. в разделе "Минимальные свойства запроса".
Opacity
Свойство Opacity
— это double
значение от нуля до одного, определяющее непрозрачность элемента управления во время отрисовки. Значение по умолчанию для этого свойства — 1.0. Значения за пределами диапазона от 0 до 1 будут зажаты. Свойство Opacity
применяется только в том случае, если IsVisible
это свойство true
. Прозрачность применяется итеративно. Таким образом, если родительский элемент управления имеет непрозрачность 0,5, а его дочерний элемент имеет 0,5 непрозрачности, дочерний элемент отрисовывается с эффективным значением непрозрачности 0,25. Opacity
Если для свойства входного элемента управления задано значение 0, поведение не определено.
Parent
Свойство Parent
наследуется от класса Element
. Это свойство является Element
объектом, который является родительским объектом элемента управления. Свойство Parent
обычно устанавливается автоматически для элемента при добавлении в качестве дочернего элемента другого элемента.
Resources
Это Resources
ResourceDictionary
экземпляр, заполненный парами "ключ-значение", которые обычно заполняются во время выполнения из XAML. Этот словарь позволяет разработчикам приложений повторно использовать объекты, определенные в XAML во время компиляции и во время выполнения. Ключи в словаре заполняются атрибутом x:Key
тега XAML. Объект, созданный из XAML, вставляется в указанный ResourceDictionary
ключ. после инициализации.
Дополнительные сведения см. в словарях ресурсов.
Rotation
Свойство Rotation
— это double
значение от нуля до 360, определяющее поворот по оси Z в градусах. Значение этого свойства по умолчанию равно 0. Поворот применяется относительно значений и AnchorY
значенийAnchorX
.
RotationX
Свойство RotationX
— это double
значение от нуля до 360, определяющее поворот по оси X в градусах. Значение этого свойства по умолчанию равно 0. Поворот применяется относительно значений и AnchorY
значенийAnchorX
.
RotationY
Свойство RotationY
— это double
значение от нуля до 360, определяющее поворот по оси Y в градусах. Значение этого свойства по умолчанию равно 0. Поворот применяется относительно значений и AnchorY
значенийAnchorX
.
Scale
Свойство Scale
— это double
значение, определяющее масштаб элемента управления. Значение по умолчанию этого свойства — 1.0. Масштаб применяется относительно значений и AnchorY
значенийAnchorX
.
ScaleX
Это ScaleX
значение double
, определяющее масштаб элемента управления вдоль оси X. Значение по умолчанию этого свойства — 1.0. Свойство ScaleX
применяется относительно AnchorX
значения.
ScaleY
Свойство ScaleY
— это double
значение, определяющее масштаб элемента управления вдоль оси Y. Значение по умолчанию этого свойства — 1.0. Свойство ScaleY
применяется относительно AnchorY
значения.
Style
Свойство Style
наследуется от класса NavigableElement
. Это свойство является экземпляром Style
класса. Класс Style
содержит триггеры, методы задания и поведение, определяющие внешний вид и поведение визуальных элементов. Дополнительные сведения см. в статье Xamarin.Forms "Стили XAML".
StyleClass
Это StyleClass
свойство представляет собой список string
объектов, представляющих имена Style
классов. Это свойство наследуется от класса NavigableElement
. Свойство StyleClass
позволяет применять к экземпляру VisualElement
несколько атрибутов стиля. Дополнительные сведения см. в разделе Xamarin.Forms "Классы стилей".
TabIndex
Это TabIndex
значение, определяющее int
порядок управления при переходе по элементам управления с помощью клавиши TAB. Это TabIndex
свойство является реализацией свойства, определенного в интерфейсе ITabStopElement
, который VisualElement
реализует класс.
TranslationX
Это TranslationX
значение, определяющее разностное double
преобразование, которое будет применяться к оси X. Перевод применяется после макета и обычно используется для применения анимаций. Преобразование элемента вне границ родительского контейнера может препятствовать работе входных данных.
Дополнительные сведения см. в Xamarin.Formsразделе "Анимация".
TranslationY
Свойство TranslationY
— это значение, определяющее разностное double
преобразование, которое будет применяться к оси Y. Перевод применяется после макета и обычно используется для применения анимаций. Преобразование элемента вне границ родительского контейнера может препятствовать работе входных данных.
Дополнительные сведения см. в Xamarin.Formsразделе "Анимация".
Triggers
Свойство Triggers
— это только List
TriggerBase
для чтения объектов. Триггеры позволяют разработчикам приложений выражать действия в XAML, которые изменяют внешний вид элементов управления в ответ на изменения событий или свойств. Дополнительные сведения см. в разделе Xamarin.Forms "Триггеры".
Visual
Это Visual
экземпляр IVisual
, который позволяет создавать и выборочно применять отрисовщики к VisualElement
экземплярам. Для Visual
свойства задано соответствие родительского элемента, поэтому определение отрисовщика компонента также будет применяться ко всем дочерним элементам этого компонента. Если на элементе управления или его предках не задан пользовательский отрисовщик, будет использоваться отрисовщик по умолчанию Xamarin.Forms . Дополнительные сведения см. в разделе Xamarin.Forms "Визуальный элемент".
Width
Свойство Width
— это значение, доступное только для double
чтения, описывающее ширину элемента управления. Свойство Width
вычисляется во время цикла макета и не может быть напрямую задано. Ширину элемента управления можно запросить с помощью свойства WidthRequest.
WidthRequest
Свойство WidthRequest
— это значение, определяющее нужную double
ширину элемента управления. Абсолютная ширина элемента управления может не совпадать с запрошенным значением. Дополнительные сведения см. в разделе "Свойства запроса".
X
Свойство X
— это значение только для double
чтения, описывающее текущую позицию элемента управления X.
Y
Свойство Y
— это значение, доступное только для double
чтения, которое описывает текущую позицию элемента управления Y.
Методы
Следующие методы доступны в VisualElement
классе. Полный список см. в разделе "Методы API VisualElement".
FindByName
Метод FindByName
наследуется от Element
класса и имеет следующую подпись:
public object FindByName (string name)
Этот метод выполняет поиск всех дочерних элементов для предоставленного аргумента name
и возвращает элемент с указанным именем. Если совпадение не найдено, null
возвращается.
Focus
Метод Focus
пытается задать фокус на элементе. Этот метод имеет следующую сигнатуру:
public bool Focus ()
Метод Focus
возвращает, true
если фокус клавиатуры был успешно установлен, и false
если вызов метода не привел к изменению фокуса. Элемент должен иметь возможность получать фокус для работы этого метода. Focus
Вызов метода для элементов, которые находятся вне экрана или нереализованы, имеет неопределенное поведение.
Unfocus
Метод Unfocus
пытается удалить фокус на элементе. Этот метод имеет следующую сигнатуру:
public void Unfocus ()
Элемент должен иметь фокус для работы этого метода.
События
Следующие события доступны в VisualElement
классе. Полный список см. в разделе Xamarin.Forms "События VisualElement".
Focused
Событие Focused
возникает всякий раз VisualElement
, когда экземпляр получает фокус. Это событие не перемещается через Xamarin.Forms стек, оно получается непосредственно из собственного элемента управления. Это событие создается методом IsFocused
задания свойств.
SizeChanged
Событие SizeChanged
возникает всякий VisualElement
Height
раз, когда экземпляр или Width
свойства изменяются. Если разработчики хотят реагировать непосредственно на изменение размера, а не отвечать на событие после изменения, они должны реализовать виртуальный OnSizeAllocated
метод.
Unfocused
Событие Unfocused
возникает всякий раз, когда VisualElement
экземпляр теряет фокус. Это событие не перемещается через Xamarin.Forms стек, оно получается непосредственно из собственного элемента управления. Это событие создается методом IsFocused
задания свойств.
Единицы измерения
Платформы Android, iOS и UWP имеют разные единицы измерения, которые могут различаться на разных устройствах. Xamarin.Forms использует независимо от платформы единицу измерения, нормализующую единицы измерения на разных устройствах и платформах. На дюйм приходится 160 единиц или 64 единиц на сантиметр.Xamarin.Forms
Свойства запроса
Свойства, имена которых содержат "request", определяют требуемое значение, которое может не соответствовать фактическому отображаемому значению. Например, может иметь значение 150, HeightRequest
но если макет разрешает только 100 единиц, отрисовка Height
элемента управления будет составлять только 100. Размер отрисовки влияет на доступное пространство и содержащиеся компоненты.
Минимальные свойства запроса
Минимальные свойства запроса включают MinimumHeightRequest
и MinimumWidthRequest
предназначены для более точного управления способом обработки переполнения элементов относительно друг друга. Однако поведение макета, связанное с этими свойствами, имеет некоторые важные аспекты.
Неопределенные минимальные значения свойств
Если минимальное значение не задано, минимальное свойство по умолчанию равно -1. Процесс макета игнорирует это значение и считает абсолютное значение минимальным. Практическим следствием этого поведения является то, что элемент без минимального значения, указанного , не будет сжиматься. Элемент с минимальным значением, заданным , будет сжиматься .
В следующем коде XAML показаны два BoxView
элемента в горизонтальном виде StackLayout
:
<StackLayout Orientation="Horizontal">
<BoxView HeightRequest="100" BackgroundColor="Purple" WidthRequest="500"></BoxView>
<BoxView HeightRequest="100" BackgroundColor="Green" WidthRequest="500" MinimumWidthRequest="250"></BoxView>
</StackLayout>
Первый BoxView
экземпляр запрашивает ширину 500 и не задает минимальную ширину. Второй BoxView
экземпляр запрашивает ширину 500 и минимальную ширину 250. Если родительский StackLayout
элемент недостаточно широкий, чтобы содержать оба компонента в запрошенной ширине, первый BoxView
экземпляр будет рассматриваться процессом макета, чтобы иметь минимальную ширину 500, так как другой допустимый минимум не указан. Второй BoxView
экземпляр может уменьшиться до 250, и он будет сжиматься до тех пор, пока ширина не достигнет 250 единиц.
Если требуемое поведение предназначено для первого BoxView
экземпляра для уменьшения масштаба без минимальной ширины, MinimumWidthRequest
необходимо задать допустимое значение, например 0.
Минимальные и абсолютные значения свойств
Поведение не определено, если минимальное значение больше абсолютного значения. Например, если WidthRequest
задано значение 100, MinimumWidthRequest
свойство никогда не должно превышать 100. При указании минимального значения свойства всегда следует указать абсолютное значение, чтобы гарантировать, что абсолютное значение больше минимального значения.
Минимальные свойства в сетке
Grid
Макеты имеют собственную систему для относительного изменения размера строк и столбцов. Использование или MinimumHeightRequest
внутри MinimumWidthRequest
макета Grid
не будет иметь эффекта. Дополнительные сведения см. в разделе Xamarin.Forms "Сетка".