首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于PresentationFramework.Aero覆盖WPF TextBox中的默认样式

基于PresentationFramework.Aero覆盖WPF TextBox中的默认样式,是指在Windows Presentation Foundation (WPF)应用程序中,通过使用PresentationFramework.Aero样式库来自定义TextBox控件的外观和行为。

在WPF中,TextBox是一个常用的控件,用于接收用户输入。然而,默认的样式可能不总是符合应用程序的需求。因此,可以通过覆盖默认样式来自定义TextBox的外观和行为。

PresentationFramework.Aero是WPF应用程序中常用的样式库,它提供了一组预定义的样式和控件模板,可以用于自定义应用程序的外观和行为。要基于PresentationFramework.Aero覆盖WPF TextBox中的默认样式,可以使用以下步骤:

  1. 首先,在应用程序的资源中引入PresentationFramework.Aero样式库。
代码语言:<Application.Resources>
复制
   <ResourceDictionary>
       <ResourceDictionary.MergedDictionaries>
           <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>
  1. 然后,在应用程序的资源中定义一个新的样式,以覆盖默认的TextBox样式。
代码语言:<Style TargetType="{x:Type TextBox}">
复制

<Setter Property="Template">

代码语言:txt
复制
   <Setter.Value>
代码语言:txt
复制
       <ControlTemplate TargetType="{x:Type TextBox}">
代码语言:txt
复制
            <Grid>
代码语言:txt
复制
               <VisualStateManager.VisualStateGroups>
代码语言:txt
复制
                   <VisualStateGroup x:Name="CommonStates">
代码语言:txt
复制
                       <VisualState x:Name="Normal" />
代码语言:txt
复制
                       <VisualState x:Name="MouseOver" />
代码语言:txt
复制
                       <VisualState x:Name="Disabled">
代码语言:txt
复制
                           <Storyboard>
代码语言:txt
复制
                               <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="PART_ContentHost">
代码语言:txt
复制
                                    <EasingColorKeyFrame KeyTime="0" Value="{DynamicResource {x:Static SystemColors.GrayTextColorKey}}" />
代码语言:txt
复制
                                </ColorAnimationUsingKeyFrames>
代码语言:txt
复制
                            </Storyboard>
代码语言:txt
复制
                        </VisualState>
代码语言:txt
复制
                       <VisualState x:Name="ReadOnly">
代码语言:txt
复制
                           <Storyboard>
代码语言:txt
复制
                               <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="PART_ContentHost">
代码语言:txt
复制
                                    <EasingColorKeyFrame KeyTime="0" Value="{DynamicResource {x:Static SystemColors.ControlDarkColorKey}}" />
代码语言:txt
复制
                                </ColorAnimationUsingKeyFrames>
代码语言:txt
复制
                            </Storyboard>
代码语言:txt
复制
                        </VisualState>
代码语言:txt
复制
                    </VisualStateGroup>
代码语言:txt
复制
                   <VisualStateGroup x:Name="FocusStates">
代码语言:txt
复制
                       <VisualState x:Name="Focused">
代码语言:txt
复制
                           <Storyboard>
代码语言:txt
复制
                               <DoubleAnimation Duration="00:00:00.1" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualElement" />
代码语言:txt
复制
                            </Storyboard>
代码语言:txt
复制
                        </VisualState>
代码语言:txt
复制
                       <VisualState x:Name="Unfocused" />
代码语言:txt
复制
                    </VisualStateGroup>
代码语言:txt
复制
                   <VisualStateGroup x:Name="ValidationStates">
代码语言:txt
复制
                       <VisualState x:Name="Valid" />
代码语言:txt
复制
                       <VisualState x:Name="InvalidUnfocused">
代码语言:txt
复制
                           <Storyboard>
代码语言:txt
复制
                               <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ValidationErrorElement">
代码语言:txt
复制
                                    <DiscreteObjectKeyFrame KeyTime="0">
代码语言:txt
复制
                                        <DiscreteObjectKeyFrame.Value>
代码语言:txt
复制
                                           <Visibility>Visible</Visibility>
代码语言:txt
复制
                                        </DiscreteObjectKeyFrame.Value>
代码语言:txt
复制
                                    </DiscreteObjectKeyFrame>
代码语言:txt
复制
                                </ObjectAnimationUsingKeyFrames>
代码语言:txt
复制
                            </Storyboard>
代码语言:txt
复制
                        </VisualState>
代码语言:txt
复制
                       <VisualState x:Name="InvalidFocused">
代码语言:txt
复制
                           <Storyboard>
代码语言:txt
复制
                               <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ValidationErrorElement">
代码语言:txt
复制
                                    <DiscreteObjectKeyFrame KeyTime="0">
代码语言:txt
复制
                                        <DiscreteObjectKeyFrame.Value>
代码语言:txt
复制
                                           <Visibility>Visible</Visibility>
代码语言:txt
复制
                                        </DiscreteObjectKeyFrame.Value>
代码语言:txt
复制
                                    </DiscreteObjectKeyFrame>
代码语言:txt
复制
                                </ObjectAnimationUsingKeyFrames>
代码语言:txt
复制
                               <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="IsOpen" Storyboard.TargetName="validationTooltip">
代码语言:txt
复制
                                    <DiscreteObjectKeyFrame KeyTime="0">
代码语言:txt
复制
                                        <DiscreteObjectKeyFrame.Value>
代码语言:txt
复制
                                           <System:Boolean>True</System:Boolean>
代码语言:txt
复制
                                        </DiscreteObjectKeyFrame.Value>
代码语言:txt
复制
                                    </DiscreteObjectKeyFrame>
代码语言:txt
复制
                                </ObjectAnimationUsingKeyFrames>
代码语言:txt
复制
                            </Storyboard>
代码语言:txt
复制
                        </VisualState>
代码语言:txt
复制
                    </VisualStateGroup>
代码语言:txt
复制
                </VisualStateManager.VisualStateGroups>
代码语言:txt
复制
               <Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="1" Opacity="1" Padding="{TemplateBinding Padding}">
代码语言:txt
复制
                   <ScrollViewer x:Name="PART_ContentHost" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" />
代码语言:txt
复制
                </Border>
代码语言:txt
复制
               <Border x:Name="DisabledVisualElement" BorderBrush="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}" BorderThickness="{TemplateBinding BorderThickness}" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" CornerRadius="1" Opacity="0" />
代码语言:txt
复制
               <Border x:Name="FocusVisualElement" BorderBrush="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="1" Margin="1" Opacity="0" />
代码语言:txt
复制
               <Border x:Name="ValidationErrorElement" BorderBrush="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="1" Visibility="Hidden">
代码语言:txt
复制
                    <ToolTipService.ToolTip>
代码语言:txt
复制
                        <ToolTip x:Name="validationTooltip" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" Placement
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券