كيفية القيام بما يلي: تسجيل الخاصية المرفقة
يوضح هذا المثال كيفية تسجيل خاصية مرفقة و توفير موصلين عامين بحيث يمكنك استخدام خاصية في كلا Extensible Application Markup Language (XAML) و التعليمات البرمجية. الخصائص المرفقة مفهوم بناء جملة معرّفة من قِبل Extensible Application Markup Language (XAML). الخصائص المرفقة الأكثر WPF الأنواع أيضًا يتم تطبيقها كـ خصائص تبعية . يمكنك استخدام خصائص تبعية على أي DependencyObject نوع.
مثال
يظهر المثال التالي كيفية تسجيل الخاصية المرفقة كـخاصية تبعية ، باستخدام RegisterAttached الأسلوب. تملك فئة الموفر الخيار لتوفير بيانات التعريف الافتراضية للخاصية القابلة للتطبيق عندما تستخدم الخاصية على فئة أخرى, ما لم تتجاوز تلك الفئة بيانات التعريف. في هذا المثال، القيمة الافتراضية IsBubbleSource الخاصية يتم تعيينها إلى false.
يجب على فئة الموفر توفير خاصية مرفقة (حتى إذا لم يتم تسجيلها كخاصية تبعية) موصلين get و set ثابتة التي تتبع Set [AttachedPropertyName] اصطلاح التسمية Get [AttachedPropertyName]هؤلاء الموصلين مطلوبين كسمة XAML يمكن للقارئ التعرف على الخاصية كسمة في XAML و إعادة حل الأنواع المناسبة.
Public Shared ReadOnly IsBubbleSourceProperty As DependencyProperty = DependencyProperty.RegisterAttached("IsBubbleSource", GetType(Boolean), GetType(AquariumObject), New FrameworkPropertyMetadata(False, FrameworkPropertyMetadataOptions.AffectsRender))
Public Shared Sub SetIsBubbleSource(ByVal element As UIElement, ByVal value As Boolean)
element.SetValue(IsBubbleSourceProperty, value)
End Sub
Public Shared Function GetIsBubbleSource(ByVal element As UIElement) As Boolean
Return CType(element.GetValue(IsBubbleSourceProperty), Boolean)
End Function
public static readonly DependencyProperty IsBubbleSourceProperty = DependencyProperty.RegisterAttached(
"IsBubbleSource",
typeof(Boolean),
typeof(AquariumObject),
new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)
);
public static void SetIsBubbleSource(UIElement element, Boolean value)
{
element.SetValue(IsBubbleSourceProperty, value);
}
public static Boolean GetIsBubbleSource(UIElement element)
{
return (Boolean)element.GetValue(IsBubbleSourceProperty);
}