Davranışlar
.NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI) davranışları, alt sınıfa almak zorunda kalmadan kullanıcı arabirimi denetimlerine işlevsellik eklemenize olanak tanır. Bunun yerine, işlev bir davranış sınıfında uygulanır ve denetimin bir parçasıymış gibi denetime eklenir.
Davranışlar, denetimin API'siyle doğrudan denetime kısa bir şekilde bağlanacak ve birden fazla uygulamada yeniden kullanılmak üzere paketlenebileceği şekilde doğrudan etkileşime alındığından, normalde arka planda kod olarak yazmanız gereken kodu uygulamanıza olanak tanır. Bunlar, denetimler için aşağıdakiler gibi tam kapsamlı işlevler sağlamak için kullanılabilir:
- e-posta doğrulayıcı ekleme Entry.
- Dokunma hareketi tanıyıcısı kullanarak derecelendirme denetimi oluşturma.
- Animasyonu denetleme.
.NET MAUI üç farklı davranış türünü destekler:
- Ekli davranışlar, bir veya daha fazla ekli özelliğe sahip sınıflardır
static
. Ekli davranışlar hakkında daha fazla bilgi için bkz . Ekli davranışlar. - .NET MAUI davranışları, veya Behavior<T> sınıfından Behavior türetilen sınıflardır; burada
T
, davranışın uygulanması gereken denetimin türüdür. Daha fazla bilgi için bkz . .NET MAUI Davranışları. - Platform davranışları, veya PlatformBehavior<TView,TPlatformView> sınıfından PlatformBehavior<TView> türetilen sınıflardır. Bu davranışlar, yerel denetimdeki rastgele koşullara ve olaylara yanıt verebilir. Daha fazla bilgi için bkz . Platform davranışları.
Ekli davranışlar
Ekli davranışlar, bir veya daha fazla ekli özelliğe sahip statik sınıflardır. Ekli özellik, özel bir bağlanabilir özellik türüdür. Bunlar bir sınıfta tanımlanır, ancak diğer nesnelere eklenir ve XAML'de bir sınıf ve noktayla ayrılmış bir özellik adı içeren öznitelikler olarak tanınabilir. Ekli özellikler hakkında daha fazla bilgi için bkz . Ekli özellikler.
Ekli bir özellik, özelliğin değeri değiştiğinde (örneğin, özelliğin bir denetimde ayarlandığı zaman) yürütülecek bir temsilci tanımlayabilir propertyChanged
. propertyChanged
Temsilci yürütürken, eklendiği denetime ve özelliğin eski ve yeni değerlerini içeren parametrelere bir başvuru geçirilir. Bu temsilci, geçirilen başvuruyu aşağıdaki gibi düzenleyerek özelliğin eklendiği denetime yeni işlevler eklemek için kullanılabilir:
- Temsilci
propertyChanged
, olarak alınan BindableObjectdenetim başvuruyu, davranışın geliştirmek üzere tasarlandığı denetim türüne yazar. - Temsilci
propertyChanged
denetimin özelliklerini değiştirir, denetimin yöntemlerini çağırır veya temel davranış işlevselliğini uygulamak için denetimin kullanıma sunduğu olaylar için olay işleyicilerini kaydeder.
Uyarı
Ekli davranışlar, özellikler ve yöntemlerle static
bir static
sınıfta tanımlanır. Bu durum içeren ekli davranışlar oluşturmayı zorlaştırır.
Ekli davranış oluşturma
Ekli davranış, temsilciyi belirten ekli bir özellik içeren statik bir propertyChanged
sınıf oluşturularak uygulanabilir.
Aşağıdaki örnekte, kullanıcı tarafından kırmızı renkli bir Entry denetime double
girilen değeri vurgulayan sınıfı gösterilmektedir AttachedNumericValidationBehavior
.
public static class AttachedNumericValidationBehavior
{
public static readonly BindableProperty AttachBehaviorProperty =
BindableProperty.CreateAttached("AttachBehavior", typeof(bool), typeof(AttachedNumericValidationBehavior), false, propertyChanged: OnAttachBehaviorChanged);
public static bool GetAttachBehavior(BindableObject view)
{
return (bool)view.GetValue(AttachBehaviorProperty);
}
public static void SetAttachBehavior(BindableObject view, bool value)
{
view.SetValue(AttachBehaviorProperty, value);
}
static void OnAttachBehaviorChanged(BindableObject view, object oldValue, object newValue)
{
Entry entry = view as Entry;
if (entry == null)
{
return;
}
bool attachBehavior = (bool)newValue;
if (attachBehavior)
{
entry.TextChanged += OnEntryTextChanged;
}
else
{
entry.TextChanged -= OnEntryTextChanged;
}
}
static void OnEntryTextChanged(object sender, TextChangedEventArgs args)
{
double result;
bool isValid = double.TryParse(args.NewTextValue, out result);
((Entry)sender).TextColor = isValid ? Colors.Black : Colors.Red;
}
}
Bu örnekte, sınıfı, AttachedNumericValidationBehavior
eklendiği denetime davranışın eklenmesini veya kaldırılmasını denetleyen bir static
alıcı ve ayarlayıcı ile adlı AttachBehavior
bir ekli özellik içerir. Bu ekli özellik, özelliğin OnAttachBehaviorChanged
değeri değiştiğinde yürütülecek yöntemi kaydeder. Bu yöntem, ekli özelliğin TextChanged
değerine göre olay için bir olay işleyicisini AttachBehavior
kaydeder veya kaydını geri alır. Davranışın temel işlevselliği yöntemi tarafından OnEntryTextChanged
sağlanır. Bu yöntem, içine girilen Entry değeri ayrıştırıp değer değilse double
özelliğini kırmızı olarak ayarlarTextColor
.
Ekli davranışı kullanma
Ekli davranış, hedef denetimde ekli özelliği ayarlanarak kullanılabilir.
Aşağıdaki örnekte, öğesine ekli özelliğini ekleyerek sınıfını AttachBehavior
kullanma AttachedNumericValidationBehavior
Entry gösterilmektedirEntry:
<ContentPage ...
xmlns:local="clr-namespace:BehaviorsDemos">
<Entry Placeholder="Enter a System.Double" local:AttachedNumericValidationBehavior.AttachBehavior="true" />
</ContentPage>
C# ile eşdeğeri Entry aşağıdaki kod örneğinde gösterilmiştir:
Entry entry = new Entry { Placeholder = "Enter a System.Double" };
AttachedNumericValidationBehavior.SetAttachBehavior(entry, true);
Aşağıdaki ekran görüntüsünde, geçersiz girişe yanıt veren ekli davranış gösterilmektedir:
Dekont
Ekli davranışlar belirli bir denetim türü (veya birçok denetime uygulanabilen bir üst sınıf) için yazılır ve yalnızca uyumlu bir denetime eklenmelidir.
Ekli davranışı kaldırma
Sınıfı, AttachedNumericValidationBehavior
ekli özelliği false
olarak ayarlanarak AttachBehavior
bir denetimden kaldırılabilir:
<Entry Placeholder="Enter a System.Double" local:AttachedNumericValidationBehavior.AttachBehavior="false" />
Çalışma zamanında, OnAttachBehaviorChanged
ekli özelliğin AttachBehavior
değeri olarak ayarlandığında false
yöntemi yürütülür. Ardından OnAttachBehaviorChanged
yöntemi, denetimle etkileşim kurarken davranışın yürütülmediğine emin olarak olay için TextChanged
olay işleyicisinin kaydını kaldıracaktır.
.NET MAUI davranışları
.NET MAUI davranışları, veya Behavior<T> sınıfından Behavior türetilerek oluşturulur.
.NET MAUI davranışı oluşturma işlemi aşağıdaki gibidir:
- veya Behavior<T> sınıfından Behavior devralan bir sınıf oluşturun; burada
T
, davranışın uygulanacağı denetimin türüdür. - OnAttachedTo Gerekli kurulumu gerçekleştirmek için yöntemini geçersiz kılın.
- OnDetachingFrom Gerekli temizleme işlemlerini gerçekleştirmek için yöntemini geçersiz kılın.
- Davranışın temel işlevselliğini uygulayın.
Bu, aşağıdaki örnekte gösterilen yapıya neden olur:
public class MyBehavior : Behavior<View>
{
protected override void OnAttachedTo(View bindable)
{
base.OnAttachedTo(bindable);
// Perform setup
}
protected override void OnDetachingFrom(View bindable)
{
base.OnDetachingFrom(bindable);
// Perform clean up
}
// Behavior implementation
}
yöntemi OnAttachedTo , davranış bir denetime eklendikten hemen sonra çağrılır. Bu yöntem, eklendiği denetime bir başvuru alır ve olay işleyicilerini kaydetmek veya davranış işlevselliğini desteklemek için gereken diğer kurulumu gerçekleştirmek için kullanılabilir. Örneğin, bir denetimdeki bir olaya abone olabilirsiniz. Daha sonra davranış işlevi, olay için olay işleyicisinde uygulanır.
OnDetachingFrom Davranış denetimden kaldırıldığında yöntemi çağrılır. Bu yöntem, eklendiği denetime bir başvuru alır ve gerekli temizleme işlemlerini gerçekleştirmek için kullanılır. Örneğin, bellek sızıntılarını önlemek için denetimdeki bir olayın aboneliğini kaldırabilirsiniz.
Daha sonra davranış, denetimin koleksiyonuna Behaviors eklenerek kullanılabilir.
.NET MAUI Davranışı Oluşturma
.NET MAUI davranışı, veya sınıfından Behavior türetilen bir sınıf oluşturulup ve OnDetachingFrom yöntemleri geçersiz kılınarak OnAttachedToBehavior<T> uygulanabilir.
Aşağıdaki örnekte, kullanıcı tarafından kırmızı renkli bir Entry denetime double
girilen değeri vurgulayan sınıfı gösterilmektedir NumericValidationBehavior
.
public class NumericValidationBehavior : Behavior<Entry>
{
protected override void OnAttachedTo(Entry entry)
{
entry.TextChanged += OnEntryTextChanged;
base.OnAttachedTo(entry);
}
protected override void OnDetachingFrom(Entry entry)
{
entry.TextChanged -= OnEntryTextChanged;
base.OnDetachingFrom(entry);
}
void OnEntryTextChanged(object sender, TextChangedEventArgs args)
{
double result;
bool isValid = double.TryParse(args.NewTextValue, out result);
((Entry)sender).TextColor = isValid ? Colors.Black : Colors.Red;
}
}
Bu örnekte, NumericValidationBehavior
sınıfı sınıfından Behavior<T> türetilir ve burada T
bir Entry. OnAttachedTo yöntemi, bellek sızıntılarını önlemek için olayı kaydını TextChanged
kaldırma yöntemiyle OnDetachingFrom olay için TextChanged
bir olay işleyicisi kaydeder. Davranışın temel işlevselliği yöntemi tarafından OnEntryTextChanged
sağlanır. Bu yöntem, içine girilen Entry değeri ayrıştırıp değer değilse double
özelliğini kırmızı olarak ayarlarTextColor
.
Önemli
.NET MAUI bir davranışı ayarlamaz BindingContext
, çünkü davranışlar paylaşılabilir ve stiller aracılığıyla birden çok denetime uygulanabilir.
.NET MAUI davranışını kullanma
Her .NET MAUI denetiminin bir Behaviors koleksiyonu vardır ve bu koleksiyona bir veya daha fazla davranış eklenebilir:
<Entry Placeholder="Enter a System.Double">
<Entry.Behaviors>
<local:NumericValidationBehavior />
</Entry.Behaviors>
</Entry>
C# ile eşdeğeri Entry aşağıdaki kod örneğinde gösterilmiştir:
Entry entry = new Entry { Placeholder = "Enter a System.Double" };
entry.Behaviors.Add(new NumericValidationBehavior());
Aşağıdaki ekran görüntüsünde geçersiz girişe yanıt veren .NET MAUI davranışı gösterilmektedir:
Uyarı
.NET MAUI davranışları belirli bir denetim türü (veya birçok denetime uygulanabilen bir üst sınıf) için yazılır ve yalnızca uyumlu bir denetime eklenmelidir. Uyumsuz bir denetime .NET MAUI davranışı eklemeye çalışmak özel durum oluşturmayla sonuçlanır.
Stille .NET MAUI davranışı kullanma
.NET MAUI davranışları açık veya örtük bir stil tarafından kullanılabilir. Ancak, özelliği salt okunur olduğundan denetimin özelliğini ayarlayan Behaviors bir stil oluşturmak mümkün değildir. Çözüm, davranışın eklenmesini ve kaldırılmasını denetleen davranış sınıfına ekli bir özellik eklemektir. Süreç şu şekilde ilerler:
- Davranışın ekleneceği denetime eklenmesini veya kaldırılmasını denetlemek için kullanılacak davranış sınıfına ekli bir özellik ekleyin. Ekli özelliğin, özelliğin değeri değiştiğinde yürütülecek bir
propertyChanged
temsilciyi kaydettiğinizden emin olun. - Ekli özellik için bir
static
alıcı ve ayarlayıcı oluşturun. - Davranışı eklemek ve kaldırmak için temsilciye mantık
propertyChanged
uygulayın.
Aşağıdaki örnekte, davranışın eklenmesini ve kaldırılmasını NumericValidationStyleBehavior
denetleyen ekli bir özelliği olan sınıfı gösterilmektedir:
public class NumericValidationStyleBehavior : Behavior<Entry>
{
public static readonly BindableProperty AttachBehaviorProperty =
BindableProperty.CreateAttached("AttachBehavior", typeof(bool), typeof(NumericValidationStyleBehavior), false, propertyChanged: OnAttachBehaviorChanged);
public static bool GetAttachBehavior(BindableObject view)
{
return (bool)view.GetValue(AttachBehaviorProperty);
}
public static void SetAttachBehavior(BindableObject view, bool value)
{
view.SetValue(AttachBehaviorProperty, value);
}
static void OnAttachBehaviorChanged(BindableObject view, object oldValue, object newValue)
{
Entry entry = view as Entry;
if (entry == null)
{
return;
}
bool attachBehavior = (bool)newValue;
if (attachBehavior)
{
entry.Behaviors.Add(new NumericValidationStyleBehavior());
}
else
{
Behavior toRemove = entry.Behaviors.FirstOrDefault(b => b is NumericValidationStyleBehavior);
if (toRemove != null)
{
entry.Behaviors.Remove(toRemove);
}
}
}
protected override void OnAttachedTo(Entry entry)
{
entry.TextChanged += OnEntryTextChanged;
base.OnAttachedTo(entry);
}
protected override void OnDetachingFrom(Entry entry)
{
entry.TextChanged -= OnEntryTextChanged;
base.OnDetachingFrom(entry);
}
void OnEntryTextChanged(object sender, TextChangedEventArgs args)
{
double result;
bool isValid = double.TryParse(args.NewTextValue, out result);
((Entry)sender).TextColor = isValid ? Colors.Black : Colors.Red;
}
}
Bu örnekte, sınıfı, NumericValidationStyleBehavior
eklendiği denetime davranışın eklenmesini veya kaldırılmasını denetleyen bir static
alıcı ve ayarlayıcı ile adlı AttachBehavior
bir ekli özellik içerir. Bu ekli özellik, özelliğin OnAttachBehaviorChanged
değeri değiştiğinde yürütülecek yöntemi kaydeder. Bu yöntem, ekli özelliğin değerine AttachBehavior
göre denetimin davranışını ekler veya kaldırır.
Aşağıdaki kod örneği, ekli özelliği kullanan AttachBehavior
ve denetimlere Entry uygulanabilen için açık bir stil NumericValidationStyleBehavior
gösterir:
<Style x:Key="NumericValidationStyle" TargetType="Entry">
<Style.Setters>
<Setter Property="local:NumericValidationStyleBehavior.AttachBehavior" Value="true" />
</Style.Setters>
</Style>
, Style işaretleme uzantısı kullanılarak özelliğini stile ayarlayarak Style bir'e EntryStaticResource
uygulanabilir:
<Entry Placeholder="Enter a System.Double" Style="{StaticResource NumericValidationStyle}">
Stiller hakkında daha fazla bilgi için bkz . Stiller.
Dekont
XAML'de ayarlanan veya sorgulanan bir davranışa bağlanabilir özellikler ekleyebilirsiniz, ancak bir içindeki denetimler StyleResourceDictionaryarasında paylaşılmaması gereken durumlarına sahip davranışlar oluşturursanız.
.NET MAUI davranışını kaldırma
Bir OnDetachingFrom davranış bir denetimden kaldırıldığında yöntemi çağrılır ve bellek sızıntısını önlemek için bir olaydan aboneliği kaldırma gibi gerekli temizleme işlemlerini gerçekleştirmek için kullanılır. Ancak, denetimin koleksiyonu veya Clear
yöntemi tarafından Remove
değiştirilmediği sürece davranışlar denetimlerden Behaviors örtük olarak kaldırılmaz:
Behavior toRemove = entry.Behaviors.FirstOrDefault(b => b is NumericValidationStyleBehavior);
if (toRemove != null)
{
entry.Behaviors.Remove(toRemove);
}
Alternatif olarak, denetimin Behaviors koleksiyonu temizlenebilir:
entry.Behaviors.Clear();
Dekont
Sayfalar gezinti yığınından çıkarıldığında .NET MAUI davranışları denetimlerden örtük olarak kaldırılmaz. Bunun yerine, sayfalar kapsam dışına çıkmadan önce açıkça kaldırılmalıdır.
Platform davranışları
Platform davranışları, veya PlatformBehavior<TView,TPlatformView> sınıfından PlatformBehavior<TView> türetilerek oluşturulur. Yerel denetimdeki rastgele koşullara ve olaylara yanıt verir.
Platform davranışı koşullu derleme veya kısmi sınıflar aracılığıyla uygulanabilir. Burada benimsenen yaklaşım, bir platform davranışının genellikle davranışLAR API'sini tanımlayan bir platformlar arası kısmi sınıftan ve davranışı her platformda uygulayan yerel bir kısmi sınıftan oluştuğu kısmi sınıfları kullanmaktır. Derleme zamanında çoklu hedefleme, her platformda platform davranışını oluşturmak için kısmi sınıfları birleştirir.
Platform davranışı oluşturma işlemi aşağıdaki gibidir:
Platform davranışı için API'yi tanımlayan bir platformlar arası kısmi sınıf oluşturun.
Uygulamanızın oluşturulduğu her platformda platformlar arası kısmi sınıfla aynı ada sahip yerel bir kısmi sınıf oluşturun. Bu yerel kısmi sınıf veya PlatformBehavior<TView,TPlatformView> sınıfından PlatformBehavior<TView> devralmalıdır; burada
TView
davranışın geçerli olması gereken platformlar arası denetimdir veTPlatformView
belirli bir platformda platformlar arası denetimi uygulayan yerel görünümdür.Dekont
Uygulamanızın oluşturulduğu her platformda yerel bir kısmi sınıf oluşturmak gerekli olsa da, platform davranışı işlevselliğini her platformda uygulamak gerekmez. Örneğin, bazı platformlarda yerel denetimin kenarlık kalınlığını değiştiren ancak tümü olmayan bir platform davranışı oluşturabilirsiniz.
Platform davranışını uygulamak için gereken her yerel kısmi sınıfta şunları yapmalısınız:
- OnAttachedTo Herhangi bir kurulum gerçekleştirmek için yöntemini geçersiz kılın.
- OnDetachedFrom Herhangi bir temizleme gerçekleştirmek için yöntemini geçersiz kılın.
- Platform davranışının temel işlevselliğini uygulayın.
Daha sonra davranış, denetimin koleksiyonuna Behaviors eklenerek kullanılabilir.
Platform davranışı oluşturma
Platform davranışı oluşturmak için önce platform davranışı için API'yi tanımlayan bir platformlar arası kısmi sınıf oluşturmanız gerekir:
namespace BehaviorsDemos
{
public partial class TintColorBehavior
{
public static readonly BindableProperty TintColorProperty =
BindableProperty.Create(nameof(TintColor), typeof(Color), typeof(TintColorBehavior));
public Color TintColor
{
get => (Color)GetValue(TintColorProperty);
set => SetValue(TintColorProperty, value);
}
}
}
Platform davranışı, uygulaması aynı adı kullanan ek bir kısmi sınıfla gerekli her platformda tamamlanacak olan kısmi bir sınıftır. Bu örnekte sınıfı, TintColorBehavior
bir görüntüyü belirtilen renkle renklendirecek tek bir bağlanabilir özellik TintColor
tanımlar.
Platformlar arası kısmi sınıfı oluşturduktan sonra, uygulamayı oluşturduğunuz her platformda yerel bir kısmi sınıf oluşturmanız gerekir. Bu, Platformlar klasörünün gerekli alt klasörlerine kısmi sınıflar ekleyerek gerçekleştirilebilir:
Alternatif olarak projenizi dosya adı tabanlı çoklu hedeflemeyi veya klasör tabanlı çoklu hedeflemeyi ya da her ikisini de destekleyecek şekilde yapılandırabilirsiniz. Çoklu hedefleme hakkında daha fazla bilgi için bkz . Çoklu hedeflemeyi yapılandırma.
Yerel kısmi sınıflar sınıfından PlatformBehavior<TView> veya sınıfından PlatformBehavior<TView,TPlatformView> devralmalıdır; burada TView
davranışın geçerli olması gereken platformlar arası denetimdir ve TPlatformView
belirli bir platformda platformlar arası denetimi uygulayan yerel görünümdür. Platform davranışını uygulamak için gereken her yerel kısmi sınıfta yöntemini ve OnDetachedFrom yöntemini geçersiz kılmanız OnAttachedTo ve platform davranışının temel işlevselliğini uygulamanız gerekir.
Yöntem, OnAttachedTo platform davranışı platformlar arası denetime eklendikten hemen sonra çağrılır. yöntemi, bağlı olduğu platformlar arası denetime bir başvuru ve isteğe bağlı olarak platformlar arası denetimi uygulayan yerel denetime başvuru alır. yöntemi, olay işleyicilerini kaydetmek veya platform davranışı işlevselliğini desteklemek için gereken diğer ayarları gerçekleştirmek için kullanılabilir. Örneğin, bir denetimdeki bir olaya abone olabilirsiniz. Daha sonra davranış işlevi, olay için olay işleyicisinde uygulanır.
Davranış OnDetachedFrom platformlar arası denetimden kaldırıldığında yöntemi çağrılır. yöntemi, eklendiği denetime bir başvuru ve isteğe bağlı olarak platformlar arası denetimi uygulayan yerel denetime başvuru alır. yöntemi, gerekli temizleme işlemlerini gerçekleştirmek için kullanılmalıdır. Örneğin, bellek sızıntılarını önlemek için denetimdeki bir olayın aboneliğini kaldırabilirsiniz.
Önemli
Kısmi sınıfların aynı ad alanında bulunması ve aynı adları kullanması gerekir.
Aşağıdaki örnekte, android için belirli bir renge sahip bir görüntüye renk tonu veren kısmi sınıf gösterilmektedir TintColorBehavior
:
using Android.Graphics;
using Android.Widget;
using Microsoft.Maui.Platform;
using Color = Microsoft.Maui.Graphics.Color;
namespace BehaviorsDemos
{
public partial class TintColorBehavior : PlatformBehavior<Image, ImageView>
{
protected override void OnAttachedTo(Image bindable, ImageView platformView)
{
base.OnAttachedTo(bindable, platformView);
if (bindable is null)
return;
if (TintColor is null)
ClearColor(platformView);
else
ApplyColor(platformView, TintColor);
}
protected override void OnDetachedFrom(Image bindable, ImageView platformView)
{
base.OnDetachedFrom(bindable, platformView);
if (bindable is null)
return;
ClearColor(platformView);
}
void ApplyColor(ImageView imageView, Color color)
{
imageView.SetColorFilter(new PorterDuffColorFilter(color.ToPlatform(), PorterDuff.Mode.SrcIn ?? throw new NullReferenceException()));
}
void ClearColor(ImageView imageView)
{
imageView.ClearColorFilter();
}
}
}
Bu örnekte, sınıfı sınıfından TintColorBehavior
PlatformBehavior<TView,TPlatformView> türetilir, burada TView
ve ImageTPlatformView
bir ImageView'dir. özelliği OnAttachedTo bir değere sahip olması koşuluyla görüntüye renk tonu TintColor
rengini uygular. yöntemi, OnDetachedFrom görüntüden renk tonu rengini kaldırır.
Uygulamanızı oluşturduğunuz her platforma yerel bir kısmi sınıf eklenmelidir. Ancak, belirli bir platformda platform davranışı gerekli değilse yerel kısmi sınıf NO-OP yapabilirsiniz. Bu, boş bir sınıf sağlayarak elde edilebilir:
using Microsoft.UI.Xaml;
namespace BehaviorsDemos
{
public partial class TintColorBehavior : PlatformBehavior<Image, FrameworkElement>
{
// NO-OP on Windows
}
}
Önemli
.NET MAUI bir platform davranışını ayarlamaz BindingContext
.
Platform davranışını kullanma
Her .NET MAUI denetiminin bir Behaviors koleksiyonu vardır ve bu koleksiyona bir veya daha fazla platform davranışı eklenebilir:
<Image Source="dotnet_bot.png"
HeightRequest="200"
HorizontalOptions="Center">
<Image.Behaviors>
<local:TintColorBehavior TintColor="Red" />
</Image.Behaviors>
</Image>
C# ile eşdeğeri Image aşağıdaki örnekte gösterilmiştir:
Image image = new Image { Source = "dotnet_bot.png", HeightRequest = 200, HorizontalOptions = LayoutOptions.Center };
image.Behaviors.Add(new TintColorBehavior());
Aşağıdaki ekran görüntüsünde, bir görüntünün renk tonunu alan platform davranışı gösterilmektedir:
Uyarı
Platform davranışları belirli bir denetim türü (veya birçok denetime uygulanabilen bir üst sınıf) için yazılır ve yalnızca uyumlu bir denetime eklenmelidir. Uyumsuz bir denetime platform davranışı eklemeye çalışmak özel durum oluşturmayla sonuçlanır.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin