silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight Textbox,Password去除鼠标滑过边框大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在自定义的登录页面上,需要添加一个文本框(Textbox)和一个密码框(passwordBox),外边再套一张图片。但是发现鼠标滑过控件的时候,总会出现外边框,很影响显示效果。如何能够去除Textbox和passwordBox的鼠标滑过外边框呢?效果图如下: 1、实现去除TextBox的鼠标滑过外边框,自定义扩展一个控件即可,实现代码如下所示: public class MidNoFocusTex

自定义登录页面上,需要添加一个文本框(TextBox)和一个密码框(passwordBox),外边再套一张图片。但是发现鼠标滑过控件的时候,总会出现外边框,很影响显示效果。如何能够去除TextBoxpasswordBox的鼠标滑过外边框呢?效果图如下:


Silverlight Textbox,Password去除鼠标滑过边框


1、实现去除TextBox的鼠标滑过外边框,自定义扩展一个控件即可,实现代码如下所示:

public class MidNoFocusTextBox : TextBox
    {
        public override void OnApplyTemplate()
        {
            foreach (String s in "FocusVisualElement,MouSEOverBorder".Split(','))
            {
                var bdr = GetTemplateChild(s) as Border;
                if (bdr != null)
                {
                    bdr.borderThickness = new Thickness(0);
                }
            }
            base.onApplyTemplate();
        }
    }

2、实现passwordBox控件的鼠标滑过去除边框效果,同样扩展控件的话,则行不通。因为passwordBox控件不能继承。所以只能通过XAML样式,来满足要求了。具体实现如下所示:

<!-- 输入密码内容样式属性,通过模板去除了密码框的光标滑过外框 -->
        <Style x:Key="passwordText" TargetType="passwordBox">
            <Setter Property="HorizontalAlignment" Value="Right"></Setter>
            <Setter Property="VerticalAlignment" Value="Center"></Setter>
            <Setter Property="FontSize" Value="14"></Setter>
            <Setter Property="Width" Value="190"></Setter>
            <Setter Property="MaxLength" Value="20"></Setter>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="passwordBox">
                        <Grid x:Name="RootElement">
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
                                    <VisualState x:Name="Normal" />
                                    <VisualState x:Name="MouSEOver">
                                        <Storyboard>
                                            <ColorAnimation Storyboard.TargetName="MouSEOverBorder" Storyboard.TargetProperty="(Border.borderBrush).(SolidColorBrush.Color)" To="#FF99C1E2" Duration="0"/>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Disabled">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="DisabledVisualElement" Storyboard.TargetProperty="Opacity" To="1" Duration="0"/>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                                <VisualStateGroup x:Name="FocusStates">
                                    <VisualState x:Name="Focused">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity" To="1" Duration="0"/>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Unfocused">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity" To="0" Duration="0"/>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                                <VisualStateGroup x:Name="ValidationStates">
                                    <VisualState x:Name="Valid"/>
                                    <VisualState x:Name="InvalidUnfocused">
                                        <Storyboard>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility">
                                                <DiscreteObjectKeyFrame KeyTime="0" >
                                                    <DiscreteObjectKeyFrame.Value>
                                                        <Visibility>Visible</Visibility>
                                                    </DiscreteObjectKeyFrame.Value>
                                                </DiscreteObjectKeyFrame>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="InvalidFocused">
                                        <Storyboard>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ValidationErrorElement" Storyboard.TargetProperty="Visibility">
                                                <DiscreteObjectKeyFrame KeyTime="0" >
                                                    <DiscreteObjectKeyFrame.Value>
                                                        <Visibility>Visible</Visibility>
                                                    </DiscreteObjectKeyFrame.Value>
                                                </DiscreteObjectKeyFrame>
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="validationTooltip" Storyboard.TargetProperty="IsOpen">
                                                <DiscreteObjectKeyFrame KeyTime="0" >
                                                    <DiscreteObjectKeyFrame.Value>
                                                        <sys:Boolean>True</sys:Boolean>
                                                    </DiscreteObjectKeyFrame.Value>
                                                </DiscreteObjectKeyFrame>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
                            <Border x:Name="Border" BorderThickness="0" CornerRadius="1">
                                <Border x:Name="MouSEOverBorder" BorderThickness="0" BorderBrush="Transparent">
                                    <Border x:Name="ContentElement" Margin="{TemplateBinding Padding}"/>
                                </Border>
                            </Border>
                            <Border x:Name="DisabledVisualElement" BorderThickness="0" IsHitTestVisible="false"/>
                            <Border x:Name="FocusVisualElement" BorderThickness="0" Margin="1" IsHitTestVisible="false"/>

                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

大佬总结

以上是大佬教程为你收集整理的Silverlight Textbox,Password去除鼠标滑过边框全部内容,希望文章能够帮你解决Silverlight Textbox,Password去除鼠标滑过边框所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。