Avalonia UI中FrameworkPropertyMetadataOptions.AffectsParentArrange的等效项是什么?
Avalonia UI 等效 WPF
FrameworkPropertyMetadataOptions.AffectsParentArrange 的配置方法 实现逻辑
Avalonia 没有将布局影响参数集成到属性注册的参数列表中,而是通过控件类静态构造函数中调用专属布局关联方法实现等效效果。
你需要用到AffectsParentArrange静态方法,将对应属性传入即可,该方法的作用与WPF的AffectsParentArrange选项完全一致:属性值变更时自动触发父元素的排列(Arrange)布局流程。
完整示例代码
public class MediaPlayer : Control { // 注册依赖属性 public static readonly StyledProperty<bool> IsStopVisibleProperty = AvaloniaProperty.Register<MediaPlayer, bool>(nameof(IsStopVisible), true); // 静态构造函数中配置属性的布局影响 static MediaPlayer() { AffectsParentArrange(IsStopVisibleProperty); } public bool IsStopVisible { get => GetValue(IsStopVisibleProperty); set => SetValue(IsStopVisibleProperty, value); } }
其他等效的布局关联方法
WPF 中其他常用的FrameworkPropertyMetadataOptions枚举值,在Avalonia中都有对应的静态方法可以实现相同效果:
- 对应
AffectsMeasure:调用AffectsMeasure(属性实例),属性变更触发自身测量布局更新 - 对应
AffectsArrange:调用AffectsArrange(属性实例),属性变更触发自身排列布局更新 - 对应
AffectsParentMeasure:调用AffectsParentMeasure(属性实例),属性变更触发父元素测量布局更新 - 对应
AffectsRender:调用AffectsRender(属性实例),属性变更触发自身重绘
内容的提问来源于stack exchange,提问作者Etienne Charland
相关产品推荐
相关产品推荐

