wpf 设置控件的显示时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf 设置控件的显示时间相关的知识,希望对你有一定的参考价值。

让控件显示一段时间后隐藏,好像把控件的Visibility属性从visible到Collapsed的效果,在*.xaml页上编写代码,不在后台编写

参考技术A 这要求只有trgger了,设置个触发条件,改变这个属性就好了 参考技术B 这样做需要设置定时器,感觉后台做更方便. 参考技术C 用trgger是个办法,但是后台比较好做

WPF 在控件下方显示带有验证错误消息的 TextBlock

【中文标题】WPF 在控件下方显示带有验证错误消息的 TextBlock【英文标题】:WPF Display TextBlock with validation error message below control 【发布时间】:2011-03-22 17:04:39 【问题描述】:

有没有办法在控件下方的 TextBlock 中显示错误内容,类似于以下设置 Tooltip 以包含错误文本的方式?

        <Style x:Key="textBoxInError" TargetType="Control">
        <Setter Property="Validation.ErrorTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <DockPanel>
                        <TextBlock DockPanel.Dock="Left" Foreground="Red" FontWeight="Bold">*</TextBlock>
                        <TextBlock Text="WOULD LIKE TO SHOW WHAT TOOLTIP IS SHOWING" DockPanel.Dock="Bottom" Foreground="Red"/>
                        <Border BorderBrush="Red" BorderThickness="2">
                            <AdornedElementPlaceholder/>
                        </Border>
                    </DockPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="Validation.HasError" Value="True">
                <Setter Property="ToolTip"
                        Value="Binding RelativeSource=x:Static RelativeSource.Self,
                    Path=(Validation.Errors)[0].ErrorContent"/>
            </Trigger>
        </Style.Triggers>
    </Style>

换句话说,我宁愿在控件下方的文本块中显示错误消息,而不是在工具提示中。

【问题讨论】:

我遇到的问题是错误消息文本块将呈现在可能位于其下方的其他控件之上。它不会把所有东西都撞下来为它腾出空间。与装饰层上显示的错误模板有关...尚未完全弄清楚。 【参考方案1】:

ErrorTemplate 的 DataContext 已经是 Validation.Errors 的值,所以你可以这样做:

<TextBlock Text="Binding [0].ErrorContent" DockPanel.Dock="Bottom" Foreground="Red"/>

<TextBlock Text="Binding ErrorContent" DockPanel.Dock="Bottom" Foreground="Red"/>

【讨论】:

以上是关于wpf 设置控件的显示时间的主要内容,如果未能解决你的问题,请参考以下文章

WPF 在控件上淡出

在 WPF 中加载的控件上显示焦点元素

wpf文件名显示在label中

WPF如何把隐藏控件显示出来

wpf中我自定义了一个自定义控件,add到了界面,如何设置显示在最底层?后台代码如何控制?

WPF ComboBox 绑定到不显示所选项目文本的用户控件集合