好用的TextBox样式

    <Style TargetType="TextBox">
        <Setter Property="FontSize" Value="14"></Setter>
        <Setter Property="VerticalContentAlignment" Value="Center" />
        <Setter Property="SnapsToDevicePixels" Value="True" />
        <Setter Property="Padding" Value="5" />
        <!--//消除锯齿-->
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="TextBox">
                    <Grid x:Name="Grid">
                        <Border x:Name="Border" SnapsToDevicePixels="True"
                                CornerRadius="5"
                                BorderBrush="LightGray" BorderThickness="2" Background="White" />
                        <ScrollViewer x:Name="PART_ContentHost" BorderThickness="0"
IsTabStop="False" Margin="2" VerticalAlignment="Stretch"  />
                        <!--//"PART_ContentHost"专属名词,改动报错-->

                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="Border" Property="BorderBrush" Value="Blue"/>
                            <Setter TargetName="Border" Property="Opacity" Value="0.2"/>
                        </Trigger>
                        <!--//鼠标悬停-->

                        <Trigger Property="IsFocused" Value="True">
                            <Setter TargetName="Border" Property="BorderBrush" Value="Blue"/>
                            <Setter TargetName="Border" Property="Opacity" Value="0.5"/>
                        </Trigger>
                        <!--//焦点-->

                        <Trigger Property="IsEnabled" Value="False">
                            <Setter TargetName="Grid" Property="Opacity" Value="0.2" />
                        </Trigger>
                        <!--//无效-->

                        <Trigger Property="IsReadOnly" Value="True">
                            <Setter TargetName="Grid" Property="IsEnabled" Value="False" />
                            <Setter TargetName="Border" Property="Opacity" Value="0.2" />
                            <Setter TargetName="PART_ContentHost" Property="Opacity" Value="0.5" />
                        </Trigger>
                        <Trigger  Property="Validation.HasError" Value="True">
                            <Setter  TargetName="Border" Property="BorderBrush" Value="Transparent"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>

        <Setter  Property="Validation.ErrorTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <DockPanel LastChildFill="True">
                        <TextBlock DockPanel.Dock="Right" Foreground="Red" FontSize="14" FontWeight="Bold"
                                       ToolTip="{Binding ElementName=PlaceHolder,Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">*</TextBlock>
                        <Border BorderBrush="Red" BorderThickness="1">
                            <AdornedElementPlaceholder Name="PlaceHolder"></AdornedElementPlaceholder>
                        </Border>
                    </DockPanel>
                </ControlTemplate>

            </Setter.Value>
        </Setter>

猜你喜欢

转载自blog.csdn.net/dxm809/article/details/107519764