WPF中如何让Textbox显示为一条直线

由于Textbox直接使用是一条直线 设置如下代码 可以让Textbox变为直线输入

XML 复制代码
 <Style TargetType="TextBox"
        x:Key="UsernameTextBoxStyle">
     <Setter Property="Template">
         <Setter.Value>
             <ControlTemplate TargetType="{x:Type TextBox}">
                 <Border x:Name="border"
                         BorderBrush="#DDD"
                         BorderThickness="0,0,0,1"
                         Background="{TemplateBinding Background}"
                         SnapsToDevicePixels="True">
                     <Grid>
                         <TextBlock Text="账号/手机号/邮箱"
                                    Grid.Column="1"
                                    VerticalAlignment="Center"
                                    Foreground="#DDD"
                                    Name="markText"
                                    Visibility="Collapsed"
                                    FontSize="12"
                                    Margin="2,0" />
                         <ScrollViewer x:Name="PART_ContentHost"
                                       Focusable="false"
                                       HorizontalScrollBarVisibility="Hidden"
                                       VerticalScrollBarVisibility="Hidden"
                                       Grid.Column="1"
                                       VerticalAlignment="Center"
                                       MinHeight="20" />
                     </Grid>
                 </Border>
                 <ControlTemplate.Triggers>
                     <Trigger Property="IsMouseOver"
                              Value="true">
                         <Setter Property="BorderBrush"
                                 TargetName="border"
                                 Value="#0b3d90" />
                     </Trigger>
                     <Trigger Property="IsKeyboardFocused"
                              Value="true">
                         <Setter Property="BorderBrush"
                                 TargetName="border"
                                 Value="#0b3d90" />
                     </Trigger>
                     <DataTrigger Binding="{Binding Path=Text,RelativeSource={RelativeSource Mode=Self}}"
                                  Value="">
                         <Setter Property="Visibility"
                                 TargetName="markText"
                                 Value="Visible" />
                     </DataTrigger>
                 </ControlTemplate.Triggers>
             </ControlTemplate>
         </Setter.Value>
     </Setter>
 </Style>

Textbox 采用上面的样式 即为

XML 复制代码
<TextBox Width="90"
         Height="20"
         Text="{Binding PLCIP}"
         Style="{StaticResource UsernameTextBoxStyle}"/>

结果如下:

相关推荐
初级代码游戏9 分钟前
套路化编程 C# winform 自适应缩放布局
开发语言·c#·winform·自动布局·自动缩放
大空大地20261 小时前
流程控制语句--switch多分支语句使用、while循环语句的使用、do...while语句、for循环
c#
kylezhao20193 小时前
C#序列化与反序列化详细讲解与应用
c#
JQLvopkk3 小时前
C# 实践AI :Visual Studio + VSCode 组合方案
人工智能·c#·visual studio
故事不长丨3 小时前
C#线程同步:lock、Monitor、Mutex原理+用法+实战全解析
开发语言·算法·c#
kingwebo'sZone3 小时前
C#使用Aspose.Words把 word转成图片
前端·c#·word
大空大地20264 小时前
表达式与运算符
c#
User_芊芊君子4 小时前
【分布式训练】CANN SHMEM跨设备内存通信库:构建高效多机多卡训练的关键组件
分布式·深度学习·神经网络·wpf
向上的车轮5 小时前
为什么.NET(C#)转 Java 开发时常常在“吐槽”Java:checked exception
java·c#·.net
心疼你的一切6 小时前
Unity异步编程神器:Unitask库深度解析(功能+实战案例+API全指南)
深度学习·unity·c#·游戏引擎·unitask