wpf textbox 样式
时间: 2023-07-27 07:06:21 浏览: 148
WPF MessageBox 样式
4星 · 用户满意度95%
以下是一个简单的 WPF Textbox 样式示例:
```xml
<Style x:Key="CustomTextboxStyle" TargetType="{x:Type TextBox}">
<Setter Property="Padding" Value="5"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="Gray"/>
<Setter Property="Background" Value="White"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontFamily" Value="Arial"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="Height" Value="30"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="5">
<Grid>
<ScrollViewer Margin="0" x:Name="PART_ContentHost"/>
<TextBlock Text="{TemplateBinding Text}"
Foreground="Transparent"
Margin="5,0,0,0"
VerticalAlignment="Center"
FontFamily="{TemplateBinding FontFamily}"
FontSize="{TemplateBinding FontSize}"
IsHitTestVisible="False"
IsVisibleChanged="TextBlock_IsVisibleChanged"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5"/>
<Setter Property="Background" Value="Gray"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="Black"/>
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush" Value="Blue"/>
<Setter Property="Background" Value="LightBlue"/>
</Trigger>
<Trigger Property="IsVisible" Value="True">
<Setter Property="Visibility" TargetName="PART_ContentHost" Value="Collapsed"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
```
你可以在 `TextBox` 中使用这个样式,如下所示:
```xml
<TextBox Style="{StaticResource CustomTextboxStyle}"/>
```
这个样式会将 TextBox 的外观修改为带圆角边框的白色背景,并且在文本框中添加了一个 TextBlock,使得文本可以在 TextBox 中自动换行。另外,当鼠标悬停在 TextBox 上时,边框颜色会变为黑色,当 TextBox 获得焦点时,边框颜色会变为蓝色,背景颜色会变为浅蓝色。当 TextBox 失去焦点时,文本框会隐藏,以便在用户输入时不会遮挡文本。
阅读全文