如何将FrameworkPropertyMetadata.AffectsArrange应用于DependencyProperty

时间:2016-02-01 20:40:37

标签: wpf

在自定义控件中,我有一个派生自DependencyObject的类,并且有一个名为MaxIdealWidth的依赖项属性。我有几个自定义控件做了一些非常奇怪的测量/安排,他们都以某种方式使用这个属性,但不是在绑定中。

我的问题是,当第一次绘制所有内容时,它运行良好。但是,当一个自定义控件更改MaxIdealWidth时,其他任何控件都不会进行测量/排列。我可以理解为什么会发生这种情况,但我需要强制所有自定义控件同时进行测量/排列。

FrameworkPropertyMetadata.AffectsArrange

查看文档,这看起来是一种很有前途的方法,但是我完全不知道如何在实践中应用它。从我的情况看如何使用它似乎没有记录。有人能告诉我如何从XAML或代码隐藏中应用AffectsArrange来从自定义控件中指示DataContext上的依赖属性应该导致度量/安排吗?

1 个答案:

答案 0 :(得分:0)

您可以使用FrameworkPropertyMetadata类而不是PropertyMetadata来执行依赖项属性注册的最后一个参数。在那里你设置了你喜欢的所有位:

    public static readonly DependencyProperty ArrowEndsProperty =
        DependencyProperty.Register("your name",
            typeof(<class>), typeof(<owner class>),
            new FrameworkPropertyMetadata(<initial value>,
                    FrameworkPropertyMetadataOptions.AffectsMeasure));
相关问题