WPF文本框高度等于父元素高度减50个像素?

3

我成功地让一个文本框随着父级边框的高度调整大小,但是我需要这个文本框的高度比父级边框小50像素。

有什么办法可以实现这个需求吗?

我使用的代码是:

<Border VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
     <TextBox x:Name="txtActivityNotes" HorizontalAlignment="Stretch" Height="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Border}}, Path=ActualHeight}" AcceptsReturn="True" VerticalContentAlignment="Top" TextWrapping="WrapWithOverflow" VerticalScrollBarVisibility="Auto" />
</Border>
3个回答

8

你不能只是设置一个50像素的底部边距吗?

<TextBox Margin="0,0,0,50" />

6
我尝试过以下方法,它可以正常工作。 将以下内容添加到XAML文本框中:
------
VerticalAlignment="Stretch" 
HorizontalAlignment="Stretch" 
Height="{Binding RelativeSource={RelativeSource FindAncestor, *AncestorType*={x:Type *Grid*}}, Path=ActualHeight}"
------

在这里,AncestorType是包含textBox的容器类型。在我的情况下,它是“Grid”。 并且添加边距,如下所示:

  Margin="0,0,0,50"

保持距离,避免下方边框。

============

哎呀,抱歉我在同一页上发布了!


2
如何在绑定时使用转换器将高度减少50?以下是一个使用转换器的示例: 点击此处查看示例

嗨,阿兰,我曾考虑使用转换器,但似乎仅仅为了将值调整50而言有点过度。我在其他地方使用转换器来提高可见性等,但如果存在更简单的解决方案,我希望能够找到它... - Mitch
转换器是WPF中的常规方式。是的,在这种特定情况下,边距也可以起作用,但转换器是有效的解决方案,并且在许多情况下是唯一的方法。 - Boppity Bop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接