C# 文本框的默认输入设置

在文本框的内容为空时,通常做法默认设置提示一段信息,在文本框输入值变化时切换实际输入值。那么怎么进行设置。

一、文本框显示提示信息

  1. 文本框未获得焦点且文本框内容为空值时,默认设置提示一段信息。下面代码中,TextBox控件中内部资源用到了画刷VisualBush,有人称为控件画刷,加上容器后可以各种内容。以后下面会介绍各类画刷。
  2. 在TextBox的Style样式里,画刷作用于文本框的背景色Background属性。
            <TextBox Width="120" Margin="5">
                <TextBox.Resources>
                    <VisualBrush x:Key="HintText" TileMode="None" Opacity="0.5" Stretch="None" AlignmentX="Left">
                        <VisualBrush.Visual>
                            <TextBlock FontStyle="Italic" Text="{x:Static  resources:Resource.KeyWord}"/>
                        </VisualBrush.Visual>
                    </VisualBrush>
                    <VisualBrush x:Key="HintText2" TileMode="None" Opacity="0.5" Stretch="None" AlignmentX="Left">
                        <VisualBrush.Visual>
                            <TextBlock FontStyle="Italic" />
                        </VisualBrush.Visual>
                    </VisualBrush>
                </TextBox.Resources>
                <TextBox.Style>
                    <Style TargetType="TextBox">
                        <Style.Triggers>
                            <Trigger Property="IsFocused" Value="False">
                                <Setter Property="Background" Value="{StaticResource HintText2}"/>
                            </Trigger>
                            <Trigger Property="Text" Value="{x:Null}">
                                <Setter Property="Background" Value="{StaticResource HintText}"/>
                            </Trigger>
                            <Trigger Property="Text" Value="">
                                <Setter Property="Background" Value="{StaticResource HintText}"/>
                            </Trigger>
                            <Trigger Property="IsFocused" Value="True">
                                <Setter Property="Background" Value="White"/>
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </TextBox.Style>
            </TextBox>

效果:进入文本框编辑,里面是白色空字符;离开后,文本Text属性为空字符时,显示为“<Keyword>”,文本Text属性有字符时,显示字符。

二、各类画刷

有6种 画刷 ,都是继承自基类 Brush。常用属性Opacity和Color。

常用属性描述
Opacity透明度(取值区间在 0-1 之间)
Color

填充颜色 

  1. 纯色画刷SolidColorBrus),填充单一颜色。
         <Grid
           <Rectangle Width="100" Height="30" >
                <Rectangle.Fill>
                    <SolidColorBrush Color="LightPink"/>
                </Rectangle.Fill>
            </Rectangle>
         </Grid>

    以上示例,SolidColorBrush绘制Rectangle的Fill。

  2. 渐变画刷(GradientBrush),抽象类,由渐变停止点组成的渐变。
    1)线性渐变画刷(LinearGradientBrush),填充渐变色, 线性渐变在一根线条(渐变轴)中混合了两种或更多颜色。 可以使用 GradientStop 对象指定渐变的颜色及其位置。

    常用属性描述
    StartPoint起始位置坐标(取值区间 0~1)
    EndPoint结束位置坐标(取值区间 0~1)
    Offset渐变向量中渐变停止点的位置(取值区间 0~1)
       <Grid>
                <Rectangle Canvas.Top="0" Height="50" Width="450">
                    <Rectangle.Fill>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
                            <GradientStop Color="Yellow"  Offset="0"/>
                            <GradientStop Color="Green"   Offset="1"/>
                        </LinearGradientBrush>
                    </Rectangle.Fill>
                </Rectangle>
        </Grid>


    2)径向渐变画刷(RadialGradientBrush),径向渐变将两种或多种颜色混合在一个圆圈中。 与 LinearGradientBrush 类一样,可以使用 GradientStop 对象指定渐变的颜色及其位置。

    常用属性描述
    GradientOrigin渐变开始的二维焦点的坐标(取值区间0~1)
    Center渐变的最外面圆的中心坐标(取值区间0~1)
    RadiusX渐变的最外面圆的水平半径(按比例)
    RadiusY渐变的最外面圆的垂直半径(按比例)
        <Grid>
            <Rectangle Height="150" Width="150">
                <Rectangle.Fill>
                    <RadialGradientBrush GradientOrigin="0.75,0.25" Center="0.7,0.5" RadiusX="0.3" RadiusY="0.4">
                        <GradientStop Color="Yellow"  Offset="0.0"/>
                        <GradientStop Color="LightGreen"   Offset="0.75"/>
                        <GradientStop Color="Green" Offset="1.0" />
                    </RadialGradientBrush>
                </Rectangle.Fill>
            </Rectangle>
        </Grid>

  3. 图像画刷ImageBrush),使用图像进行填充,ImageBrush 使用 ImageSource 绘制。

        <Grid>
            <Rectangle Height="150" Width="150">
                <Rectangle.Fill>
                    <ImageBrush ImageSource="00.jpeg"  />
                </Rectangle.Fill>
            </Rectangle>
        </Grid>
  4. 绘图画刷DrawingBrush),可以自定义形状,填充,边框, Drawing 可以包含形状、图像、文本和媒体。

    常用属性描述
    Brush设置填充画刷
    Pen设置填充画笔
    Geometry设置填充形状
        <Grid>
            <Rectangle Height="100" Width="150">
                <Rectangle.Fill>
                    <DrawingBrush>
                        <DrawingBrush.Drawing>
                            <DrawingGroup>
                                <DrawingGroup.Children>
                                    <GeometryDrawing>
                                        <!-- 绘制矩形 -->
                                        <GeometryDrawing.Geometry>
                                            <RectangleGeometry RadiusX="0.2" RadiusY="0.5"
                                                       Rect="0.02,0.02,0.96,0.96"/>
                                        </GeometryDrawing.Geometry>
                                        <!-- 矩形填充 -->
                                        <GeometryDrawing.Brush>
                                            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                                <GradientStop Color="Yellow" Offset="0"/>
                                                <GradientStop Color="Blue"   Offset="1"/>
                                            </LinearGradientBrush>
                                        </GeometryDrawing.Brush>
                                        <!-- 矩形边框 -->
                                        <GeometryDrawing.Pen>
                                            <Pen Thickness="0.02">
                                                <Pen.Brush>
                                                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                                        <GradientStop Color="AliceBlue" Offset="0"/>
                                                        <GradientStop Color="Black"     Offset="1"/>
                                                    </LinearGradientBrush>
                                                </Pen.Brush>
                                            </Pen>
                                        </GeometryDrawing.Pen>
                                    </GeometryDrawing>
                                    <GeometryDrawing>
                                        <!-- 绘制矩形 -->
                                        <GeometryDrawing.Geometry>
                                            <RectangleGeometry RadiusX="0.2" RadiusY="0.5"
                                                       Rect="0.02,0.02,0.5,0.6"/>
                                        </GeometryDrawing.Geometry>
                                        <!-- 矩形填充 -->
                                        <GeometryDrawing.Brush>
                                            <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                                <GradientStop Color="Green" Offset="0"/>
                                                <GradientStop Color="Red"   Offset="1"/>
                                            </LinearGradientBrush>
                                        </GeometryDrawing.Brush>
                                        <!-- 矩形边框 -->
                                        <GeometryDrawing.Pen>
                                            <Pen Thickness="0.02">
                                                <Pen.Brush>
                                                    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                                                        <GradientStop Color="AliceBlue" Offset="0"/>
                                                        <GradientStop Color="Black"     Offset="1"/>
                                                    </LinearGradientBrush>
                                                </Pen.Brush>
                                            </Pen>
                                        </GeometryDrawing.Pen>
                                    </GeometryDrawing>
                                </DrawingGroup.Children>
                            </DrawingGroup>
                        </DrawingBrush.Drawing>
                    </DrawingBrush>
                </Rectangle.Fill>
            </Rectangle>
        </Grid>

  5. 视觉画刷VisualBrush),使用 Visual 对象绘制,可以控件填充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值