RelativeSource构造函数可选参数

时间:2014-10-13 19:09:22

标签: c# xaml constructor

在查看MS Reference源时,它们显示了RelativeSource的构造函数。下面是将FindAncestor指定为模式时使用的。

public RelativeSource(RelativeSourceMode mode, Type ancestorType, int ancestorLevel)
        {
            InitializeMode(mode);
            AncestorType = ancestorType;
            AncestorLevel = ancestorLevel;
        }

现在我没有看到任何允许可选参数的内容。

然而,即使我没有指定AncestorLevel,下面的XAML也能正常工作。

    <TextBlock Height="50" Text="{Binding RelativeSource={RelativeSource 
    FindAncestor, AncestorType={x:Type Window}}, Path=Height}"/>

为什么我可以退出AncestorLevel参数?

3 个答案:

答案 0 :(得分:1)

字符串&#34; {Binding RelativeSource = {RelativeSource FindAncestor,AncestorType = {x:Type Window}},Path = Height}&#34;没有调用RelativeSource的构造函数。它正在调用Binding XAML Markup extensionsRelativeSource XAML Markup Extension。这些扩展有自己的语法并提供自己的默认值。

答案 1 :(得分:1)

在XAML include Markup Extensions中,所有对象都是按无参数默认构造函数实例化的。创建后设置所有属性。带参数的构造函数不适用于XAML

答案 2 :(得分:0)

检查XAML RelativeSource MarkupExtension

intLevel - FindAncestor模式的可选项。祖先级别(在逻辑树中向父方向求值)。