zoukankan      html  css  js  c++  java
  • WPF数据验证(5)―― 错误模板

     <Style TargetType="{x:Type TextBox}">
                <Setter Property="Validation.ErrorTemplate">
                    <Setter.Value>
                        <ControlTemplate>
                            <DockPanel LastChildFill="True">
                                <TextBlock DockPanel.Dock="Bottom" Foreground="Red"
                                           Text="{Binding ElementName=adorned,Path=AdornedElement.(Validation.Errors)[0].ErrorContent}"/>
                                <Border BorderBrush="Red" BorderThickness="1">
                                    <AdornedElementPlaceholder x:Name="adorned"/>
                                </Border>
                            </DockPanel>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

      AdornedElementPlaceholder 是这种技术能够工作的粘合剂。她代表控件自身,位于元素层中。通过使用 AdornedElementPlaceholder 元素,能够在文本框背后安排自己的内容。

      

    该模板放在资源文件中

    <ControlTemplate x:Key="InputErrorTemplate">

            <DockPanel>
                <Ellipse 
                      DockPanel.Dock="Right" 
                      Margin="2,0"
                      ToolTip="Contains invalid data"
                      Width="10" Height="10"   
                      >
                    <Ellipse.Fill>
                        <LinearGradientBrush>
                            <GradientStop Color="#11FF1111" Offset="0" />
                            <GradientStop Color="#FFFF0000" Offset="1" />
                        </LinearGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>
                <AdornedElementPlaceholder />
            </DockPanel>

        </ControlTemplate>

        <Style TargetType="TextBox">
            <Setter Property="Validation.ErrorTemplate" 
                    Value="{StaticResource InputErrorTemplate}" 
             />
            <Style.Triggers>
                <Trigger Property="Validation.HasError" Value="True">
                    <Setter Property="ToolTip">
                        <Setter.Value>
                            <Binding 
                                Path="(Validation.Errors).CurrentItem.ErrorContent"
                                RelativeSource="{x:Static RelativeSource.Self}"
                                />
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>

        </Style>

    出错效果是在文本框中显示TOOLTIP提示

     
  • 相关阅读:
    centos 无线网卡安装,网卡rtl8188ee
    centos mysqldb 安装
    centos 安装gcc时,出错:Found 10 pre-existing rpmdb problem(s), 'yum check' output follows:
    peewee 字段属性help_text的支持问题
    mysql查看字段注释(帮助信息)指令
    centos mysql 大量数据导入时1153 错误:1153
    php在centos下的脚本没有解析的问题
    [转]mysql分布式方案-分库拆表
    [转]Mysql海量数据存储和解决方案之一—分布式DB方案
    mysql 数据库字符集的指定
  • 原文地址:https://www.cnblogs.com/sjqq/p/6951230.html
Copyright © 2011-2022 走看看