大佬教程收集整理的这篇文章主要介绍了Silverlight Textbox,Password去除鼠标滑过边框,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在自定义的登录页面上,需要添加一个文本框(TextBox)和一个密码框(passwordBox),外边再套一张图片。但是发现鼠标滑过控件的时候,总会出现外边框,很影响显示效果。如何能够去除TextBox和passwordBox的鼠标滑过外边框呢?效果图如下:
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(); } }
<!-- 输入密码内容样式属性,通过模板去除了密码框的光标滑过外框 --> <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,请注明来意。