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 ListBehavior . 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 Rectanglestruct 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 ListEffect 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, LeftToRightlub 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 ListTriggerBase 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.