2009-11-16 99 views
3

我成功地获得一个文本框来调整一个父边框的高度,但我需要的文本框实际上比父边框高50个像素。WPF文本框高度等于父高度减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> 

回答

8

你就不能设置下边距50?

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

怎么样使用关上的高度结合到零下50转换器

heres an example of using a converter

+0

嗨阿兰,我曾考虑使用转换器,但它似乎有点矫枉过正只是为了调整一个值50!我在其他地方使用转换器来查看可见性等,但我希望有一个更简单的解决方案(如果存在的话)... – Mitch 2009-11-16 01:34:29

+0

这肯定会是矫枉过正。保证金应该有效。 – PeterAllenWebb 2009-11-16 01:39:18

+0

转换器是wpf中的常用方式。是的保证金会在这个特定的情况下工作,但转换器也有效。并且在许多情况下是唯一的方式。 – 2011-09-24 13:43:25

4

我试过下面,它的工作原理。 添加以下到文本框在XAML:

------ 
VerticalAlignment="Stretch" 
HorizontalAlignment="Stretch" 
Height="{Binding RelativeSource={RelativeSource FindAncestor, *AncestorType*={x:Type *Grid*}}, Path=ActualHeight}" 
------ 

这里,AncestorType是包含文本框容器的类型。在我的情况下,它是'网格'。 并添加保证金一样,

Margin="0,0,0,50" 

保持从下边框的距离。

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

哎呀对不起我张贴在同一页上!