发出以将多个属性绑定到单个元素属性


    <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你可以创建任何你想要显示的内容。并且还可以在每个运行上显示不同的样式,例如,您可以在第一次运行时创建粗体效果,而其他可能不同,如斜体或其他东西。

然后使用HeightWidth属性的窗口使用ActualHeightActualWidth属性,这将为您提供一个实际的值。有可能你会得到NAN的高度和宽度,因为他们没有明确定义。

相关内容

  • 没有找到相关文章

最新更新