Xamarin.Forms typowe właściwości, metody i zdarzenia kontrolki
Klasa Xamarin.FormsVisualElement
jest klasą bazową dla większości kontrolek używanych w Xamarin.Forms aplikacji. Klasa VisualElement
definiuje wiele właściwości, metod i zdarzeń używanych w klasach pochodnych.
Właściwości
Następujące właściwości są dostępne w VisualElement
obiektach.
AnchorX
Właściwość AnchorX
jest wartością double
, która definiuje punkt środkowy na osi X dla przekształceń, takich jak skala i obrót. Wartość domyślna to 0,5.
AnchorY
Właściwość AnchorY
jest wartością double
, która definiuje punkt środkowy na osi Y dla przekształceń, takich jak skala i obrót. Wartość domyślna to 0,5.
Background
Właściwość Background
jest wartością Brush
, która umożliwia korzystanie z pędzli jako tła w dowolnej kontrolce. Domyślna wartość to Brush.Default
.
BackgroundColor
Właściwość BackgroundColor
jest właściwością Color
, która określa kolor tła kontrolki. Jeśli nie zostanie ustawiona, tło będzie domyślnym obiektem Color
, który jest renderowany jako przezroczysty.
Behaviors
Właściwość Behaviors
jest obiektem List
Behavior
. Zachowania umożliwiają dołączanie funkcji wielokrotnego użytku do elementów przez dodanie ich do Behaviors
listy. Aby uzyskać więcej informacji na temat Behavior
klasy, zobacz Xamarin.Forms Zachowania.
Bounds
Właściwość Bounds
jest obiektem tylko Rectangle
do odczytu, który reprezentuje miejsce zajmowane przez kontrolkę. Wartość właściwości jest przypisywana Bounds
podczas cyklu układu. Zawiera Rectangle
struct
przydatne właściwości i metody testowania przecięcia i zawierania prostokątów. Aby uzyskać więcej informacji, zobacz interfejs API prostokąta.Xamarin.Forms
Clip
Właściwość Clip
jest obiektem Geometry
, który definiuje konspekt zawartości elementu. Aby zdefiniować klip, użyj Geometry
obiektu, takiego jak EllipseGeometry
, aby ustawić właściwość elementu Clip
. Widoczne będą tylko obszary znajdujące się w obrębie regionu geometrii. Aby uzyskać więcej informacji, zobacz Clip with a Geometry (Tworzenie wycinków za pomocą geometrii).
Effects
Właściwość Effects
jest obiektem List
Effect
dziedziczonego Element
z klasy . Efekty umożliwiają dostosowywanie kontrolek natywnych i są zwykle używane do drobnych zmian stylów. Aby uzyskać więcej informacji na temat Effect
klasy, zobacz Xamarin.Forms Efekty.
FlowDirection
Właściwość FlowDirection
jest wartością wyliczeniową FlowDirection
. Kierunek przepływu można ustawić na MatchParent
, LeftToRight
lub RightToLeft
i określa kolejność i kierunek układu. Właściwość FlowDirection
jest zwykle używana do obsługi języków odczytywanych od prawej do lewej.
Height
Właściwość Height
jest wartością tylko double
do odczytu, która opisuje renderowaną wysokość kontrolki. Właściwość Height
jest obliczana podczas cyklu układu i nie można jej ustawić bezpośrednio. Wysokość kontrolki można zażądać przy użyciu właściwości HeightRequest.
HeightRequest
Właściwość HeightRequest
jest wartością double
, która określa żądaną wysokość kontrolki. Bezwzględna wysokość kontrolki może być niezgodna z żądaną wartością. Aby uzyskać więcej informacji, zobacz Request properties (Właściwości żądania).
InputTransparent
Właściwość InputTransparent
jest właściwością określającą bool
, czy kontrolka odbiera dane wejściowe użytkownika. Wartość domyślna to false
, zapewniając, że element odbiera dane wejściowe. Ta właściwość jest przekazywana do elementów podrzędnych po jej ustawieniu. InputTransparent
Ustawienie właściwości na true
wartość w klasie układu spowoduje, że wszystkie elementy w układzie nie odbierają danych wejściowych.
IsEnabled
Właściwość IsEnabled
jest wartością bool
, która określa, czy kontrolka reaguje na dane wejściowe użytkownika. Domyślna wartość to true
. Ustawienie tej właściwości na false uniemożliwi kontrolce akceptowanie danych wejściowych użytkownika.
IsFocused
Właściwość IsFocused
jest wartością opisającą, czy kontrolka jest obecnie obiektem bool
ukierunkowanym. Focus
Wywołanie metody w kontrolce spowoduje IsFocused
ustawienie wartości true. Unfocus
Wywołanie metody spowoduje ustawienie tej właściwości na wartość false.
IsTabStop
Właściwość IsTabStop
jest wartością bool
, która określa, czy kontrolka odbiera fokus, gdy użytkownik przechodzi przez kontrolki za pomocą klawisza tabulacji. Jeśli ta właściwość ma wartość false, TabIndex
właściwość nie będzie miała żadnego wpływu.
IsVisible
Właściwość IsVisible
jest wartością bool
, która określa, czy kontrolka jest renderowana. Kontrolki z właściwością ustawioną IsVisible
na false nie będą wyświetlane, nie będą brane pod uwagę w obliczeniach przestrzeni podczas cyklu układu i nie mogą akceptować danych wejściowych użytkownika.
MinimumHeightRequest
Właściwość MinimumHeightRequest
jest wartością double
, która określa sposób obsługi przepełnienia, gdy dwa elementy konkurują o ograniczoną ilość miejsca. MinimumHeightRequest
Ustawienie właściwości umożliwia procesowi układu skalowanie elementu w dół do żądanego wymiaru minimalnego. Jeśli nie MinimumHeightRequest
zostanie określony, wartość domyślna to -1, a proces układu będzie uwzględniał HeightRequest
wartość minimalną. Oznacza to, że elementy bez MinimumHeightRequest
wartości nie będą miały skalowalnej wysokości.
Aby uzyskać więcej informacji, zobacz Minimalne właściwości żądania.
MinimumWidthRequest
Właściwość MinimumWidthRequest
jest wartością double
, która określa sposób obsługi przepełnienia, gdy dwa elementy konkurują o ograniczoną ilość miejsca. MinimumWidthRequest
Ustawienie właściwości umożliwia procesowi układu skalowanie elementu w dół do żądanego wymiaru minimalnego. Jeśli nie MinimumWidthRequest
zostanie określony, wartość domyślna to -1, a proces układu będzie uwzględniał WidthRequest
wartość minimalną. Oznacza to, że elementy bez MinimumWidthRequest
wartości nie będą miały skalowalnej szerokości.
Aby uzyskać więcej informacji, zobacz Minimalne właściwości żądania.
Opacity
Właściwość Opacity
jest wartością double
od zera do jednej, która określa nieprzezroczystość kontrolki podczas renderowania. Wartość domyślna dla tej właściwości to 1.0. Wartości poza zakresem od 0 do 1 zostaną zaciśnięte. Właściwość Opacity
jest stosowana tylko wtedy, gdy IsVisible
właściwość to true
. Nieprzezroczystość jest stosowana iteracyjnie. Dlatego jeśli kontrolka nadrzędna ma nieprzezroczystość 0,5, a jej element podrzędny ma nieprzezroczystość 0,5, element podrzędny będzie renderowany z efektywną wartością nieprzezroczystości 0,25. Opacity
Ustawienie właściwości kontrolki wejściowej na 0 ma niezdefiniowane zachowanie.
Parent
Właściwość Parent
jest dziedziczona z Element
klasy . Ta właściwość jest obiektem Element
nadrzędnym kontrolki. Właściwość Parent
jest zwykle ustawiana automatycznie dla elementu, gdy jest dodawana jako element podrzędny innego elementu.
Resources
Właściwość Resources
jest wystąpieniem wypełnionym ResourceDictionary
parami klucz/wartość, które są zwykle wypełniane w czasie wykonywania z języka XAML. Ten słownik umożliwia deweloperom aplikacji ponowne używanie obiektów zdefiniowanych w języku XAML zarówno w czasie kompilacji, jak i w czasie wykonywania. Klucze w słowniku są wypełniane z x:Key
atrybutu tagu XAML. Obiekt utworzony na podstawie kodu XAML jest wstawiany do ResourceDictionary
obiektu dla określonego klucza. po zainicjowaniu.
Aby uzyskać więcej informacji, zobacz Słowniki zasobów.
Rotation
Właściwość Rotation
jest wartością double
z zakresu od zera do 360, która definiuje obrót osi Z w stopniach. Wartość domyślna tej właściwości to 0. Rotacja jest stosowana względem AnchorX
wartości i AnchorY
.
RotationX
Właściwość RotationX
jest wartością double
z zakresu od 0 do 360, która definiuje obrót osi X w stopniach. Wartość domyślna tej właściwości to 0. Rotacja jest stosowana względem AnchorX
wartości i AnchorY
.
RotationY
Właściwość RotationY
jest wartością double
z zakresu od zera do 360, która definiuje rotację osi Y w stopniach. Wartość domyślna tej właściwości to 0. Rotacja jest stosowana względem AnchorX
wartości i AnchorY
.
Scale
Właściwość Scale
jest wartością double
, która definiuje skalę kontrolki. Wartość domyślna tej właściwości to 1.0. Skala jest stosowana względem AnchorX
wartości i AnchorY
.
ScaleX
Właściwość ScaleX
jest wartością double
, która definiuje skalę kontrolki wzdłuż osi X. Wartość domyślna tej właściwości to 1.0. Właściwość ScaleX
jest stosowana względem AnchorX
wartości.
ScaleY
Właściwość ScaleY
jest wartością double
, która definiuje skalę kontrolki wzdłuż osi Y. Wartość domyślna tej właściwości to 1.0. Właściwość ScaleY
jest stosowana względem AnchorY
wartości.
Style
Właściwość Style
jest dziedziczona z NavigableElement
klasy . Ta właściwość jest wystąpieniem Style
klasy. Klasa Style
zawiera wyzwalacze, metody ustawiające i zachowania definiujące wygląd i zachowanie elementów wizualizacji. Aby uzyskać więcej informacji, zobacz Xamarin.Forms Style XAML.
StyleClass
Właściwość StyleClass
jest listą string
obiektów reprezentujących nazwy Style
klas. Ta właściwość jest dziedziczona z NavigableElement
klasy . Właściwość StyleClass
umożliwia zastosowanie wielu atrybutów stylu do VisualElement
wystąpienia. Aby uzyskać więcej informacji, zobacz Xamarin.Forms Klasy stylów.
TabIndex
Właściwość TabIndex
jest wartością int
, która definiuje kolejność sterowania podczas przechodzenia przez kontrolki za pomocą klawisza tabulacji. Właściwość TabIndex
jest implementacją właściwości zdefiniowanej w interfejsie ITabStopElement
, którą VisualElement
implementuje klasa.
TranslationX
Właściwość TranslationX
jest wartością double
, która definiuje tłumaczenie różnicowe, które ma być stosowane na osi X. Tłumaczenie jest stosowane po układzie i jest zwykle używane do stosowania animacji. Tłumaczenie elementu spoza granic kontenera nadrzędnego może uniemożliwić działanie danych wejściowych.
Aby uzyskać więcej informacji, zobacz Animacja w programie Xamarin.Forms.
TranslationY
Właściwość TranslationY
jest wartością double
, która definiuje tłumaczenie różnicowe, które ma być stosowane na osi Y. Tłumaczenie jest stosowane po układzie i jest zwykle używane do stosowania animacji. Tłumaczenie elementu spoza granic kontenera nadrzędnego może uniemożliwić działanie danych wejściowych.
Aby uzyskać więcej informacji, zobacz Animacja w programie Xamarin.Forms.
Triggers
Właściwość Triggers
jest tylko List
TriggerBase
do odczytu obiektów. Wyzwalacze umożliwiają deweloperom aplikacji wyrażanie akcji w języku XAML, które zmieniają wygląd wizualizacji kontrolek w odpowiedzi na zmiany zdarzeń lub właściwości. Aby uzyskać więcej informacji, zobacz Xamarin.Forms Wyzwalacze.
Visual
Właściwość Visual
jest wystąpieniem IVisual
, które umożliwia tworzenie i selektywne stosowanie modułów renderujących do VisualElement
wystąpień. Właściwość jest ustawiona Visual
tak, aby pasować do jej elementu nadrzędnego, więc zdefiniowanie modułu renderowania w składniku będzie również miało zastosowanie do wszystkich elementów podrzędnych tego składnika. Jeśli dla kontrolki lub jej elementów nadrzędnych nie ustawiono niestandardowego modułu renderowania, zostanie użyty domyślny Xamarin.Forms moduł renderowania. Aby uzyskać więcej informacji, zobacz Xamarin.Forms Wizualizacja.
Width
Właściwość Width
jest wartością tylko double
do odczytu, która opisuje renderowaną szerokość kontrolki. Właściwość Width
jest obliczana podczas cyklu układu i nie można jej ustawić bezpośrednio. Można zażądać szerokości kontrolki przy użyciu właściwości WidthRequest.
WidthRequest
Właściwość WidthRequest
jest wartością double
, która określa żądaną szerokość kontrolki. Bezwzględna szerokość kontrolki może być niezgodna z żądaną wartością. Aby uzyskać więcej informacji, zobacz Request properties (Właściwości żądania).
X
Właściwość X
jest wartością tylko double
do odczytu, która opisuje bieżącą pozycję X kontrolki.
Y
Właściwość Y
jest wartością tylko double
do odczytu, która opisuje bieżącą pozycję Y kontrolki.
Metody
W klasie są dostępne VisualElement
następujące metody. Aby uzyskać pełną listę, zobacz VisualElement API Methods (Metody interfejsu API VisualElement).
FindByName
Metoda FindByName
jest dziedziczona z Element
klasy i ma następujący podpis:
public object FindByName (string name)
Ta metoda wyszukuje wszystkie elementy podrzędne dla podanego name
argumentu i zwraca element, który ma określoną nazwę. Jeśli nie zostanie znalezione dopasowanie, null
zostanie zwrócony.
Focus
Metoda Focus
próbuje ustawić fokus na elemecie . Ta metoda ma następujący podpis:
public bool Focus ()
Focus
Metoda zwracatrue
, jeśli fokus klawiatury został pomyślnie ustawiony i false
jeśli wywołanie metody nie spowodowało zmiany fokusu. Element musi mieć możliwość uzyskania fokusu, aby ta metoda działała. Focus
Wywoływanie metody na elementach, które są wyłączone lub niezrealizowane, ma niezdefiniowane zachowanie.
Unfocus
Metoda Unfocus
próbuje usunąć fokus na elemecie . Ta metoda ma następujący podpis:
public void Unfocus ()
Element musi już mieć fokus, aby ta metoda działała.
Zdarzenia
W klasie są dostępne VisualElement
następujące zdarzenia. Aby uzyskać pełną listę, zobacz Xamarin.Forms VisualElement Events (Zdarzenia elementu VisualElement).
Focused
Zdarzenie Focused
jest zgłaszane za każdym razem, VisualElement
gdy wystąpienie odbiera fokus. To zdarzenie nie jest bąbelkowe za pośrednictwem stosu Xamarin.Forms , odbierane bezpośrednio z kontrolki natywnej. To zdarzenie jest emitowane przez IsFocused
zestaw właściwości.
SizeChanged
Zdarzenie SizeChanged
jest zgłaszane za każdym razem, gdy VisualElement
wystąpienie Height
lub Width
właściwości się zmieni. Jeśli deweloperzy chcą odpowiedzieć bezpośrednio na zmianę rozmiaru, zamiast odpowiadać na zdarzenie po zmianie, zamiast tego powinni zaimplementować metodę wirtualną OnSizeAllocated
.
Unfocused
Zdarzenie Unfocused
jest zgłaszane za każdym razem, VisualElement
gdy wystąpienie traci fokus. To zdarzenie nie jest bąbelkowe za pośrednictwem stosu Xamarin.Forms , odbierane bezpośrednio z kontrolki natywnej. To zdarzenie jest emitowane przez IsFocused
zestaw właściwości.
Jednostki miary
Wszystkie platformy Android, iOS i UWP mają różne jednostki miar, które mogą się różnić w różnych urządzeniach. Xamarin.Forms używa niezależnej od platformy jednostki miary, która normalizuje jednostki na różnych urządzeniach i platformach. W obiekcie Xamarin.Formsznajduje się 160 jednostek na cal lub 64 jednostki na centymetr.
Właściwości żądania
Właściwości, których nazwy zawierają wartość "request", definiują żądaną wartość, która może nie być zgodna z rzeczywistą wartością renderowaną. Na przykład można ustawić wartość 150, HeightRequest
ale jeśli układ zezwala tylko na miejsce dla 100 jednostek, renderowany Height
kontrolka będzie mieć tylko 100. Rozmiar renderowany ma wpływ na dostępne miejsce i zawarte składniki.
Minimalne właściwości żądania
Minimalne właściwości żądania obejmują MinimumHeightRequest
i MinimumWidthRequest
, i mają na celu umożliwienie dokładniejszej kontroli nad sposobem obsługi przepełnienia względem siebie elementów. Jednak zachowanie układu związane z tymi właściwościami ma pewne ważne zagadnienia.
Nieokreślone minimalne wartości właściwości
Jeśli wartość minimalna nie jest ustawiona, wartość domyślna właściwości minimalnej to -1. Proces układu ignoruje tę wartość i uznaje wartość bezwzględną za minimalną. Praktyczną konsekwencją tego zachowania jest to, że element bez określonej wartości minimalnej nie zmniejszy się. Element o określonej wartości minimalnej zmniejszy się.
Poniższy kod XAML przedstawia dwa BoxView
elementy w poziomie StackLayout
:
<StackLayout Orientation="Horizontal">
<BoxView HeightRequest="100" BackgroundColor="Purple" WidthRequest="500"></BoxView>
<BoxView HeightRequest="100" BackgroundColor="Green" WidthRequest="500" MinimumWidthRequest="250"></BoxView>
</StackLayout>
Pierwsze BoxView
wystąpienie żąda szerokości 500 i nie określa minimalnej szerokości. Drugie BoxView
wystąpienie żąda szerokości 500 i minimalnej szerokości 250. Jeśli element nadrzędny StackLayout
nie jest wystarczająco szeroki, aby zawierać oba składniki o żądanej szerokości, pierwsze BoxView
wystąpienie zostanie uwzględnione przez proces układu, aby mieć minimalną szerokość 500, ponieważ nie określono innego prawidłowego minimum. Drugie BoxView
wystąpienie może być skalowane w dół do 250 i będzie się zmniejszać, aż szerokość osiągnie 250 jednostek.
Jeśli żądane zachowanie dotyczy pierwszego BoxView
wystąpienia do skalowania w dół bez minimalnej szerokości, MinimumWidthRequest
należy ustawić prawidłową wartość, taką jak 0.
Minimalne i bezwzględne wartości właściwości
Zachowanie jest niezdefiniowane, gdy wartość minimalna jest większa niż wartość bezwzględna. Jeśli na przykład WidthRequest
ustawiono wartość 100, MinimumWidthRequest
właściwość nigdy nie powinna przekraczać 100. Podczas określania wartości właściwości minimalnej należy zawsze określić wartość bezwzględną, aby upewnić się, że wartość bezwzględna jest większa niż wartość minimalna.
Minimalne właściwości w siatce
Grid
układy mają własny system do względnego określania rozmiaru wierszy i kolumn. Użycie MinimumWidthRequest
lub MinimumHeightRequest
wewnątrz Grid
układu nie będzie miało wpływu. Aby uzyskać więcej informacji, zobacz Xamarin.Forms Siatka.