将控制工具提示重置为“默认”设置工具提示

时间:2020-09-10 09:16:24

标签: c# wpf xaml

我有一个表单,其中填充了多个文本字段,需要由用户填写。 每个文本字段都有一个工具提示,以帮助用户举例说明该文本字段的期望值。

<!-- Handle xaml-->
<Label x:Name="lbmyHandle" Content="Handle:" HorizontalAlignment="Left" Margin="69,80,0,0" VerticalAlignment="Top"/>
<TextBox x:Name="txtmyHandle" HorizontalAlignment="Left" Height="23" Margin="123,84,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="120" ToolTip="Example: [Machine brand].[Machine model].[Machine s/n]"/>

用户单击按钮后,我验证每个文本字段,以检查是否已填写任何内容以及是否已填写的内容与期望值匹配。如果不是这种情况,我将设置文本字段的工具提示以指示用户必须更改文本字段的值。

现在是一个问题,当用户在编辑指示为错误的值后再次单击按钮时,我想将文本字段的工具提示重置为“默认”工具提示(如果已更正)。表示在XAML中设置的工具提示。此值是存储在某个地方还是我需要手动存储,如果是,则存储这些值的最佳实践是什么。

2 个答案:

答案 0 :(得分:1)

一种方法是将默认的工具提示文本声明为资源中的字符串,然后可以使用类似的方法进行设置:

... ToolTip="{StaticResources defaultTooltipTextKey}" ...

或者类似地,您可以在C#类中设置文本并按如下方式访问它:

... ToolTip="{x:Static LocalNamespace:ToolTips.ToolTip1}" ...

该类如下所示:

LocalNamespace
{
   public static class ToolTips
   {
        public static string ToolTip1 { get; } = "Example: [Machine brand]...";
   }
}

使用这两种方法,您以后都可以参考原始字符串。第二个代码从C#代码更容易做到。

答案 1 :(得分:0)

该值存储在某个地方,还是需要手动存储?如果是,最好的做法是存储这些值

像这样设置时,它仅存储在名为“ txtmyHandle”的ToolTip的{​​{1}}属性中:

TextBox

如果稍后再将此属性设置为另一个值,除非将其存储在某个位置,否则原始字符串值将消失。

例如,您可以在将属性设置为代码中的另一个值之前执行此操作,例如:

<TextBox x:Name="txtmyHandle" ... ToolTip="Example: [Machine brand].[Machine model].[Machine s/n]"/>

string orginalToolTipValue = txtmyHandle.ToolTip?.ToString(); txtmyHandle.ToolTip = "something else.."; 可能是您课程的一个字段。