【问题标题】:Synchronizing parent height to child height in WPF在WPF中将父高度同步到子高度
【发布时间】:2016-04-11 10:06:20
【问题描述】:

我正在使用 VS 2015 和 WPF 开发蒙版设计器,我可以在其中拖动、移动和调整控件大小。 这些控件之一是具有 TextBlock 作为内容的标签。

这在我的 XAMl 中看起来像这样:

<Label Background="AliceBlue" HorizontalAlignment="Left" Margin="10,5,0,0" VerticalAlignment="Top">
    <TextBlock TextWrapping="Wrap" Height="Auto">Label</TextBlock>
</Label>

对于 TextBlock,我将 TextWrapping 设置为“Wrap”,将 Height 设置为“Auto”。 当我尝试将标签的高度调整为允许的最小值时,TextBlock 的内容仍应完全可见。 我用一个 TextBlock 试过这个,它奏效了。 但是当我尝试使用实现 TextBlock 的 Label 时,它不起作用,TextBlock 的内容不再完全可见。

如何将父母的身高与孩子的身高同步?

提前致谢! 帕特里克

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    您可以使用父级的名称并绑定其ActualHeight

    <Label x:Name="parentElementName" Background="AliceBlue" HorizontalAlignment="Left" Margin="10,5,0,0" VerticalAlignment="Top">
            <TextBlock TextWrapping="Wrap"  Height="{Binding ActualHeight, ElementName=parentElementName}">Label</TextBlock>
    </Label>
    

    编辑

       <Label x:Name="parentElementName" Background="AliceBlue" Height="{Binding ActualHeight, ElementName=Child}"HorizontalAlignment="Left" Margin="10,5,0,0" VerticalAlignment="Top">
                <TextBlock  x:Name="Child" TextWrapping="Wrap"  Height="Auto">Label</TextBlock>
        </Label>
    

    【讨论】:

    • 感谢您的回答,但这不是我想要的。我需要将父母的高度与其孩子的高度同步,而不是孩子与其父母的高度同步。有没有办法在 XAML 中做到这一点?
    【解决方案2】:

    @Ghassen 的回答基本上是正确的。如果您想将父级绑定到子级,请反转上面的答案。倒过来的代码如下所示。

    <Label x:Name="ParentLabel" Height="{Binding ElementName=ChildBlock, Path=ActualHeight}" Width="{Binding ElementName=ChildBlock, Path=ActualWidth}"  Background="Blue">
          <TextBlock x:Name="ChildBlock" Height="100" Width="100" Background="Green"></TextBlock>
    </Label>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-27
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 2018-10-06
      • 1970-01-01
      • 2018-12-07
      相关资源
      最近更新 更多