XAML 在C# WPF中为TextBox添加空文本工具提示

zlhcx6iw  于 2023-04-18  发布在  C#
关注(0)|答案(1)|浏览(183)

我试图添加一个工具提示到文本框显示它时,文本输入是空的TextChangedEvent,我已经尝试了这个解决方案,从这篇文章How add and show tooltip textbox WPF if textbox not empty

<Style x:Key="TextBoxStyle" TargetType="TextBox">
        <Setter Property="Padding" Value="5"/>
        <Setter Property="HorizontalAlignment" Value="Stretch"/>
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Setter Property="Width" Value="200"/>
        <Style.Triggers>
            <Trigger Property="ToolTip" Value="{x:Static sys:String.Empty}">
                <Setter Property="ToolTipService.IsEnabled" Value="False" />
            </Trigger>
        </Style.Triggers>
    </Style>

但我得到了这个错误:
错误无法对类型“Trigger”的“Value”属性设置“Binding”。只能对DependencyObject的DependencyProperty设置“Binding”。
如何解决此问题?

更新:

此外,我想实现这样的东西(没有MVVM模式):

8xiog9wr

8xiog9wr1#

我不太明白你想实现什么样的逻辑。
据我猜测,这是为了只在该行为空时显示工具提示,或者相反,该行为空时不显示工具提示。
这是两种完全可行的选择。

<Style  x:Key="TextBoxStyle" TargetType="TextBox">
            <Setter Property="Padding" Value="5"/>
            <Setter Property="HorizontalAlignment" Value="Stretch"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
            <Setter Property="Width" Value="200"/>
            <Setter Property="ToolTipService.IsEnabled" Value="False"/>
            <Setter Property="ToolTip">
                <Setter.Value>
                    <ToolTip>
                        <TextBlock Text="Hello World!"/>
                    </ToolTip>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <Trigger Property="Text" Value="{x:Static sys:String.Empty}">
                    <Setter Property="ToolTipService.IsEnabled" Value="True" />
                </Trigger>
            </Style.Triggers>
        </Style>
<Style  x:Key="TextBoxStyle" TargetType="TextBox">
            <Setter Property="Padding" Value="5"/>
            <Setter Property="HorizontalAlignment" Value="Stretch"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
            <Setter Property="Width" Value="200"/>
            <Setter Property="ToolTipService.IsEnabled" Value="True"/>
            <Setter Property="ToolTip">
                <Setter.Value>
                    <ToolTip>
                        <TextBlock Text="Hello World!"/>
                    </ToolTip>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <Trigger Property="Text" Value="{x:Static sys:String.Empty}">
                    <Setter Property="ToolTipService.IsEnabled" Value="False" />
                </Trigger>
            </Style.Triggers>
        </Style>

使用:

<TextBox Style="{DynamicResource TextBoxStyle}"/>

相关问题