gpt4 book ai didi

c# - 如果有错误,则在工具提示中获取验证错误,否则显示解释性工具提示(使用文本框样式)

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:17 24 4
gpt4 key购买 nike

更新:找到解决方案,见下文!

我尝试实现以下行为:

在一个 UserControl 中有几个 TextBox。每个 TextBox-ToolTip 都应显示一个特定的字符串,该字符串位于 Resource.resx 文件中。如果此 TextBox 的验证返回错误,则返回的错误字符串将显示在工具提示中。这应该使用样式来完成。我目前的状态是,我可以显示特定的 Validation.Errors 和一个默认工具提示,这对于使用该样式的每个 TextBox 都是相同的。

所以我的风格是:

<Style TargetType="{x:Type TextBox}"> 
<Setter Property="ToolTip" Value="ExampleToolTip"/>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(Validation.Errors).CurrentItem.ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>

通过这种样式,我得到了上述行为。

现在我想要样式部分

<Style TargetType="{x:Type TextBox}"> 
<Setter Property="ToolTip" Value="ExampleToolTip"/>
...
</Style>

特定于文本框。

我尝试为我的文本框编写一个附加属性,这样我就可以定义第二个字符串,它应该用作标准工具提示。

附加属性代码如下所示:

public class TextBox2 : DependencyObject
{
public static void SetToolTipStandard(TextBox target, string value)
{
target.SetValue(ToolTipStandardProperty, value);
}

public static string GetToolTipStandard(TextBox target)
{
return (string)target.GetValue(ToolTipStandardProperty);
}

public static DependencyProperty ToolTipStandardProperty = DependencyProperty.RegisterAttached(
"ToolTipStandard",
typeof(string),
typeof(TextBox),
new PropertyMetadata());
}

现在我想在我的 XAML 文本框上设置一个 TextBox2.ToolTipStandard 属性,TextBox-Style 应该使用这个属性来设置默认的 ToolTip-Text。我尝试了几种绑定(bind)组合,但没有成功。有没有办法实现这种行为?

最佳答案

一个想法,您可以在 ControlTemplate 中放置一个隐藏边框,在提供错误工具提示的输入控件周围使用 BorderThickness 为 0。如果出现错误,您将可见性设置为可见,并显示错误工具提示。

这只是一个想法,但它可能会奏效。

关于c# - 如果有错误,则在工具提示中获取验证错误,否则显示解释性工具提示(使用文本框样式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13311010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com