我有一个表单,其中填充了多个文本字段,需要由用户填写。 每个文本字段都有一个工具提示,以帮助用户举例说明该文本字段的期望值。
<!-- 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中设置的工具提示。此值是存储在某个地方还是我需要手动存储,如果是,则存储这些值的最佳实践是什么。
答案 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..";
可能是您课程的一个字段。