【发布时间】:2017-01-17 10:10:50
【问题描述】:
我希望设置 TextBox 的样式,以便在我的控件大小发生更改时调整 TextBox 和/或字体大小以使其正确显示。
我几乎可以正常工作了。
我的风格:
<UserControl.Resources>
<Style x:Key="ViewBoxTextBox" TargetType="TextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
<Viewbox HorizontalAlignment="Left">
<TextBox Text="{TemplateBinding Text}" Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ActualWidth}"/>
</Viewbox>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
示例代码:
<TextBox Style="{StaticResource ViewBoxTextBox}" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="2" Text="{Binding MyText}"/>
以下是 3 个条件的屏幕截图。
在第三个屏幕截图中,当我减小控件的高度时,TextBox 字体的大小正确地减小了,但 TextBox 的宽度正在减小并且不占用整个可用宽度。
有什么想法吗?
【问题讨论】:
-
尝试将 ViewBox 的 Stretch 属性设置为 Fill。
-
@mm8 确实可以将宽度固定到最大值,但是它阻止了文本框内的字体大小减小,而只是在高度上被压扁了。
-
最简单的路线,打一个
ViewBox
标签: c# wpf xaml styles viewbox