尝试调整文本框的大小+;文本框中带有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内部运行之前构建项目的习惯。在没有构建的情况下,它没有看到名称空间,只是我之前评论的补充。