<Button>
<Button.Content>
<MultiBinding StringFormat="{}{0},{1}">
<Binding Path="Width" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}"/>
<Binding Path="Height" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}"/>
</MultiBinding>
</Button.Content>
</Button>
这里我试图将窗口的宽度和高度绑定到按钮内容中,但它没有意义
正如Adrian所建议的,您必须将StringFormat
绑定的结果分配给文本控件。试试这个:
<Button>
<Button.Content>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0},{1}">
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Button}}"/>
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Button}}"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Button.Content>
</Button>
你可以试试
<Button>
<Button.Content>
<TextBlock TextAlignment="Left">
<Run Text="{Binding ActualWidth" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}"/>
<Run Text=" | " />
<Run Text="{Binding ActualHeight" RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}"/>
</TextBlock>
</Button.Content>
</Button>
通过使用Run你可以创建任何你想要显示的内容。并且还可以在每个运行上显示不同的样式,例如,您可以在第一次运行时创建粗体效果,而其他可能不同,如斜体或其他东西。
然后使用Height和Width属性的窗口使用ActualHeight和ActualWidth属性,这将为您提供一个实际的值。有可能你会得到NAN的高度和宽度,因为他们没有明确定义。