FrameworkPropertyMetadataOptions.AffectsMeasure 和 FrameworkPropertyMetadataOptions.AffectsRender 在阿瓦隆尼亚

FrameworkPropertyMetadataOptions.AffectsMeasure and FrameworkPropertyMetadataOptions.AffectsRender in Avalonia

将 wpf 下的应用程序移动到 avalonia ui。在传输过程中,我遇到了文档中没有的东西。一般来说,有一段来自 wpf 的代码:

public class BaseLabelElement : UIElement
{
    public static readonly DependencyProperty FontFamilyProperty = DependencyProperty.Register(
        "FontFamily", typeof(FontFamily), typeof(BaseLabelElement), new FrameworkPropertyMetadata(DefaultFontFamily,
            FrameworkPropertyMetadataOptions.AffectsMeasure | FrameworkPropertyMetadataOptions.AffectsRender, FontFamilyPropertyChanged));

    public FontFamily FontFamily
    {
        get { return (FontFamily)GetValue(FontFamilyProperty); }
        set { SetValue(FontFamilyProperty, value); }
    }
}

如何添加对应

的新行为
new FrameworkPropertyMetadata (.., FrameworkPropertyMetadataOptions.AffectsMeasure | FrameworkPropertyMetadataOptions.AffectsRender,..)

对于 Avalonia 中的依赖项 属性?

AffectsRender<T>(AvaloniaProperty[]) and AffectsMeasure<T>(AvaloniaProperty[]) class Visual 中的方法。这些方法应该在静态控件构造函数中调用,每个控件 属性 在修改时应该导致重绘。这类似于 WPF 中的 FrameworkPropertyMetadata.AffectsRender 和 AffectsMeasure 标志。