wpf - 文本框不会拉伸(stretch)以填充 View 框

标签 wpf forms layout textbox viewbox

我希望我的 LOB 表单中的标签和文本框的字体大小随着窗口大小或分辨率的变化而增大和缩小。为了实现这一点,我将标签和文本框放在了 View 框中。

标签和自定义单选按钮的行为与我预期的一样,但文本框不会水平拉伸(stretch)以填充 View 框(抱歉,由于代表无法发布图像)。如果您输入文本框,它们将水平填充 View 框。

这是我正在使用的代码示例:

  <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="0.186*"/>
            <ColumnDefinition Width="0.814*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="0.127*"/>
            <RowDefinition Height="0.873*"/>
        </Grid.RowDefinitions>
        <Viewbox Margin="0,0,0.917,0">
            <Label Content="First name:"/>
        </Viewbox>
        <Viewbox Grid.Column="1">
            <TextBox TextWrapping="Wrap"/>
        </Viewbox>
    </Grid>

我尝试在 View 框中放置网格、堆栈面板和停靠面板(LastChildFill="True"),然后将文本框放置在这些布局控件中,但这也不起作用。反正有没有让文本框水平填充父 View 框?

这个问题与此类似:WPF TextBox won't fill in StackPanel但这个问题是堆栈面板,而不是 View 框。

最佳答案

只需使用转换器
像这样设置字体大小:FontSize="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight ,Converter={StaticResource heightconverter}, ConverterParameter=3}"

public class ProcentualHeightConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (parameter is string p)
        {
            if (value is double v)
            {
                var result = double.TryParse(p, out double param);
                if (result)
                {
                    return v / param;
                }
            }
        } 
        return value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

关于wpf - 文本框不会拉伸(stretch)以填充 View 框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8726256/

相关文章:

html - 让两个单选按钮表现为一个复选框

WPF:从后台线程更新 UI 的问题

c# - 调度程序的种类

c# - BeginInvoke 因跳过空检查而导致错误

android - jquery 手机 + phonegap : search bar too wide

java - 如何在两种不同模式、两种布局中设置方向?

Android 将 ImageButton 设置为切换

wpf - 在 wpf 中使用 fontstretch

javascript - 选择一个按钮后如何使其他单选按钮变灰直到刷新

html - 输入标签内的 HTML Name 属性中允许使用哪些字符?