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 свойства назначается во время цикла макета. Содержит Rectanglestruct полезные свойства и методы для тестирования пересечения и хранения прямоугольников. Дополнительные сведения см. в 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

Это ResourcesResourceDictionary экземпляр, заполненный парами "ключ-значение", которые обычно заполняются во время выполнения из 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 — это только ListTriggerBase для чтения объектов. Триггеры позволяют разработчикам приложений выражать действия в 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 возникает всякий VisualElementHeight раз, когда экземпляр или 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 "Сетка".