在WPF中限制“自动”和“1 *”的行高
我有一个WPF应用程序,其布局由顶级Grid
的3行组成。
我希望中间行占用它所需的空间(它所需的最大空间是有限的,但取决于窗口的宽度)。 底行应占用剩余空间。 棘手的部分是顶行。 它的大小可以根据按钮切换大部分内容的可见性而变化。 我希望它最多使用50%的高度但不超过它真正需要的高度。 以下XAML描述了我想要完成的任务:
行是:
-
WrapPanel
-
WrapPanel
-
TextBox
如果这很重要
如果我理解正确,您可以使用Auto
,然后将MaxHeight
属性绑定到Grid
的Height
。 也许是这样的:
MaxHeightConverter.cs:
public class MaxHeightConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) throw new ArgumentException("MaxHeightConverter expects a height value", "values"); return ((double)value / 2); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } }
MyWindow.xaml:
... xmlns:converters="clr-namespace:MyApp.Namespace" ... ...
希望这可以帮助。
另一种只使用XAML的方法就是绑定到你想要的高度的隐藏对象: