您的位置:首页 > Web前端 > CSS

[WPF] TextBox Metro风格样式

2014-01-05 12:35 381 查看
很多时候在项目中想有一个简单的,没有那么花哨的文本框,这时我们会想到使用图片来修饰,但是其实这样就是累赘!

简单的风格,简单的代码,简单的样式,其实就很好!

名称:

Metro 风格TextBox

属性:

鼠标没有悬上去的时候是TextBlock,

悬上去是有背景的TextBlock+半透明白色边框,

当选中的时候可以输入,

TextBlock状态背景透明,

选中时候背景为半透明黑色,

加半透明白色边框

代码:

<Style x:Key="TextBoxStyle" TargetType="{x:Type TextBox}">
        <Setter Property="Background" Value="{x:Null}"/>
        <Setter Property="BorderBrush" Value="{x:Null}"/>
        <Setter Property="Foreground" Value="White"/>
        <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="HorizontalContentAlignment" Value="Left"/>
        <Setter Property="Padding" Value="0.5,0"/>
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        <Setter Property="AllowDrop" Value="true"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TextBox}">				
                    <Border x:Name="BackBorder" SnapsToDevicePixels="true" BorderThickness="{TemplateBinding BorderThickness}" Background="{x:Null}" BorderBrush="{x:Null}">
                        <ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Background" TargetName="BackBorder" Value="{x:Null}"/>
                            <Setter Property="Foreground" Value="#CCFFFFFF"/>
                        </Trigger>
                        <Trigger Property="IsMouseOver" Value="True">								
                            <Setter Property="Background" TargetName="BackBorder" Value="#30FFFFFF"/>
							<Setter Property="BorderBrush" TargetName="BackBorder" Value="#30FFFFFF"/>
                        </Trigger>
                        <Trigger Property="IsFocused" Value="True">
                            <Setter Property="Background" TargetName="BackBorder" Value="#30000000"/>
                            <Setter Property="BorderBrush" TargetName="BackBorder" Value="#50FFFFFF"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>


下载:
资源下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: