【问题标题】:FrameworkPropertyMetadataOptions.AffectsMeasure and FrameworkPropertyMetadataOptions.AffectsRender in AvaloniaAvalonia 中的 FrameworkPropertyMetadataOptions.AffectsMeasure 和 FrameworkPropertyMetadataOptions.AffectsRender
【发布时间】:2020-07-26 20:18:26
【问题描述】:

将 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 中的依赖属性?

【问题讨论】:

    标签: avalonia


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-01-14
      • 2022-01-04
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-26
      • 2022-01-04
      相关资源
      最近更新 更多