Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试调整文本框的大小+;文本框中带有C#和WPF的字体大小只能执行其中一项操作_C#_Wpf_Viewbox - Fatal编程技术网

尝试调整文本框的大小+;文本框中带有C#和WPF的字体大小只能执行其中一项操作

尝试调整文本框的大小+;文本框中带有C#和WPF的字体大小只能执行其中一项操作,c#,wpf,viewbox,C#,Wpf,Viewbox,我正在尝试调整窗口大小时文本框和文本框内的文本的大小。我似乎能做到一个或另一个,但不能同时做到两个 调整文本框的大小是可行的,但我无法调整其中的文本大小: 上述示例的代码: <Grid Grid.Row="1"> <Grid.ColumnDefinitions> <ColumnDefinition Width="133*"/> <ColumnDefinition Width="20

我正在尝试调整窗口大小时文本框和文本框内的文本的大小。我似乎能做到一个或另一个,但不能同时做到两个

调整文本框的大小是可行的,但我无法调整其中的文本大小:

上述示例的代码:

    <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="133*"/>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="20*"/>
        </Grid.ColumnDefinitions>
        <Button Content="Button" Grid.Column="2"/>
        <Button Content="Button" Grid.Column="1"/>
        <TextBox TextWrapping="Wrap" VerticalContentAlignment="Center"/>
    </Grid>
    <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="133*"/>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="20*"/>
        </Grid.ColumnDefinitions>
        <Button Content="Button" Grid.Column="2"/>
        <Button Content="Button" Grid.Column="1"/>
        <Viewbox Stretch="Uniform">
            <TextBox TextWrapping="Wrap" VerticalContentAlignment="Center"/>
        </Viewbox>
    </Grid>

或者调整字体大小也可以,但我无法使文本框填充我正在使用的视图框:

上述示例的代码:

    <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="133*"/>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="20*"/>
        </Grid.ColumnDefinitions>
        <Button Content="Button" Grid.Column="2"/>
        <Button Content="Button" Grid.Column="1"/>
        <TextBox TextWrapping="Wrap" VerticalContentAlignment="Center"/>
    </Grid>
    <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="133*"/>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="20*"/>
        </Grid.ColumnDefinitions>
        <Button Content="Button" Grid.Column="2"/>
        <Button Content="Button" Grid.Column="1"/>
        <Viewbox Stretch="Uniform">
            <TextBox TextWrapping="Wrap" VerticalContentAlignment="Center"/>
        </Viewbox>
    </Grid>

使用Stretch=“Fill”(在正确的轨道上,但我宁愿保持它的一致性,而UniformToFill会做一些奇怪的事情,我甚至看不到发生了什么)
像这样的东西合适吗

<Grid Grid.Row="1">
    <Grid.ColumnDefinitions>
            <ColumnDefinition Width="133*"/>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="20*"/>
        </Grid.ColumnDefinitions>
        <Button Content="Button" Grid.Column="2"/>
        <Button Content="Button" Grid.Column="1"/>
        <Viewbox StretchDirection="Both" Stretch="Uniform">
            <TextBox Text="some text"></TextBox>
        </Viewbox>
    </Grid>

您可以使用转换器

public class FontSizeConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        double actualHeight = System.Convert.ToDouble(value);
        int fontSize = (int)(actualHeight * .5);
        return fontSize;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
XAML:

。。。。
...
结果:


这与我的第二个示例的作用相同。谢谢。我仍然在学习WPF,我不得不查看一些东西,甚至看看你在这里做了什么。我不仅得到了一个可行的解决方案,而且还学到了一些研究该解决方案的知识。另外,我想补充一点,我花了一些时间才弄明白,因为我没有在IDE内部运行之前构建项目的习惯。在没有构建的情况下,它没有看到名称空间,只是我之前评论的补充。