Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zachowania to przydatne podejście do dodawania efektu do kontrolki, usuwania efektu płyty kotłowej obsługującego kod z plików za pomocą kodu. W tym artykule pokazano tworzenie Xamarin.Forms i używanie zachowania w celu dodania efektu do kontrolki.
Omówienie
Klasa EffectBehavior jest zachowaniem niestandardowym wielokrotnego użytku Xamarin.Forms , które dodaje Effect wystąpienie do kontrolki, gdy zachowanie jest dołączone do kontrolki, i usuwa Effect wystąpienie, gdy zachowanie jest odłączone od kontrolki.
Aby korzystać z zachowania, należy ustawić następujące właściwości zachowania:
- Group — wartość atrybutu
ResolutionGroupNamedla klasy effect. - Name — wartość atrybutu
ExportEffectdla klasy effect.
Aby uzyskać więcej informacji na temat efektów, zobacz Efekty.
Uwaga
Jest EffectBehavior to klasa niestandardowa, która może znajdować się w przykładzie i nie jest częścią Xamarin.Formsklasy .
Tworzenie zachowania
Klasa EffectBehavior pochodzi z Behavior<T> klasy , gdzie T jest .View Oznacza to, że EffectBehavior klasa może być dołączona do dowolnej Xamarin.Forms kontrolki.
Implementowanie właściwości możliwych do powiązania
Klasa EffectBehavior definiuje dwa BindableProperty wystąpienia, które są używane do dodawania Effect elementu do kontrolki, gdy zachowanie jest dołączone do kontrolki. Te właściwości są wyświetlane w poniższym przykładzie kodu:
public class EffectBehavior : Behavior<View>
{
public static readonly BindableProperty GroupProperty =
BindableProperty.Create ("Group", typeof(string), typeof(EffectBehavior), null);
public static readonly BindableProperty NameProperty =
BindableProperty.Create ("Name", typeof(string), typeof(EffectBehavior), null);
public string Group {
get { return (string)GetValue (GroupProperty); }
set { SetValue (GroupProperty, value); }
}
public string Name {
get { return(string)GetValue (NameProperty); }
set { SetValue (NameProperty, value); }
}
...
}
EffectBehavior Po zużyciu Group właściwości należy ustawić wartość atrybutu ResolutionGroupName dla efektu. Ponadto Name właściwość powinna być ustawiona na wartość atrybutu ExportEffect dla klasy effect.
Implementowanie przesłonięć
Klasa EffectBehavior zastępuje OnAttachedTo metody Behavior<T> i OnDetachingFrom klasy, jak pokazano w poniższym przykładzie kodu:
public class EffectBehavior : Behavior<View>
{
...
protected override void OnAttachedTo (BindableObject bindable)
{
base.OnAttachedTo (bindable);
AddEffect (bindable as View);
}
protected override void OnDetachingFrom (BindableObject bindable)
{
RemoveEffect (bindable as View);
base.OnDetachingFrom (bindable);
}
...
}
Metoda OnAttachedTo wykonuje konfigurację przez wywołanie AddEffect metody, przekazując dołączoną kontrolkę jako parametr. Metoda OnDetachingFrom wykonuje oczyszczanie, wywołując metodę RemoveEffect , przekazując dołączoną kontrolkę jako parametr.
Implementowanie funkcji zachowania
Celem zachowania jest dodanie zdefiniowanych Effect we właściwościach Group i Name do kontrolki, gdy zachowanie jest dołączone do kontrolki, i usunięcie Effect , gdy zachowanie jest odłączone od kontrolki. Podstawowe funkcje zachowania są wyświetlane w poniższym przykładzie kodu:
public class EffectBehavior : Behavior<View>
{
...
void AddEffect (View view)
{
var effect = GetEffect ();
if (effect != null) {
view.Effects.Add (GetEffect ());
}
}
void RemoveEffect (View view)
{
var effect = GetEffect ();
if (effect != null) {
view.Effects.Remove (GetEffect ());
}
}
Effect GetEffect ()
{
if (!string.IsNullOrWhiteSpace (Group) && !string.IsNullOrWhiteSpace (Name)) {
return Effect.Resolve (string.Format ("{0}.{1}", Group, Name));
}
return null;
}
}
Metoda AddEffect jest wykonywana w odpowiedzi na dołączanie do EffectBehavior kontrolki i odbiera dołączoną kontrolkę jako parametr. Następnie metoda dodaje pobrany efekt do kolekcji kontrolki Effects . Metoda RemoveEffect jest wykonywana w odpowiedzi na EffectBehavior odłączenie od kontrolki i odbiera dołączoną kontrolkę jako parametr. Następnie metoda usuwa efekt z kolekcji kontrolki Effects .
Metoda GetEffect używa Effect.Resolve metody , aby pobrać Effectelement . Efekt znajduje się za pośrednictwem łączenia Group wartości właściwości i Name . Jeśli platforma nie zapewnia efektu, Effect.Resolve metoda zwróci wartość innąnull niż .
Korzystanie z zachowania
Klasę EffectBehavior można dołączyć do Behaviors kolekcji kontrolki, jak pokazano w poniższym przykładzie kodu XAML:
<Label Text="Label Shadow Effect" ...>
<Label.Behaviors>
<local:EffectBehavior Group="Xamarin" Name="LabelShadowEffect" />
</Label.Behaviors>
</Label>
Równoważny kod języka C# jest pokazany w poniższym przykładzie kodu:
var label = new Label {
Text = "Label Shadow Effect",
...
};
label.Behaviors.Add (new EffectBehavior {
Group = "Xamarin",
Name = "LabelShadowEffect"
});
Właściwości Group i Name zachowania są ustawione na wartości ResolutionGroupName atrybutów i ExportEffect dla klasy efektu w każdym projekcie specyficznym dla platformy.
W czasie wykonywania, gdy zachowanie jest dołączone do kontrolki Label , Xamarin.LabelShadowEffect element zostanie dodany do kolekcji kontrolki Effects . Spowoduje to dodanie cienia do tekstu wyświetlanego przez kontrolkę Label , jak pokazano na poniższych zrzutach ekranu:

Zaletą tego zachowania w celu dodawania i usuwania efektów z kontrolek jest to, że kod obsługi efektu płyty kotłowej można usunąć z plików zza kodu.
Podsumowanie
W tym artykule pokazano użycie zachowania w celu dodania efektu do kontrolki. Klasa EffectBehavior jest zachowaniem niestandardowym wielokrotnego użytku Xamarin.Forms , które dodaje Effect wystąpienie do kontrolki, gdy zachowanie jest dołączone do kontrolki, i usuwa Effect wystąpienie, gdy zachowanie jest odłączone od kontrolki.