テキスト フィールドのデータを含むヒントを表示する必要があります。テキストボックスにデータがある場合に表示するプロンプト。
質問する
19717 次
4 に答える
6
ToolTipService 添付プロパティへのバインディングを使用するだけです。XAML:
<UserControl.Resources>
<converters:IsStringNonemptyConverter x:Key="ToolTipVisibilityConveter" />
</UserControl.Resources>
<TextBox Name="textBox" VerticalAlignment="Center" HorizontalAlignment="Center" Width="150"
ToolTipService.ToolTip="{Binding Text, RelativeSource={RelativeSource Self}}"
ToolTipService.IsEnabled="{Binding Text, RelativeSource={RelativeSource Self}, Converter={StaticResource ToolTipVisibilityConveter}}"/>
コンバータ:
internal sealed class IsStringNonemptyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return !String.IsNullOrEmpty(value as string);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
于 2012-08-12T20:45:51.807 に答える
5
トリガーを使用してツールチップを無効にすることができます。このスタイルをウィンドウまたはアプリ リソースに配置して、選択に応じてウィンドウまたはアプリケーションのすべてのテキスト ボックスで共有できるようにします。
<Style x:Key="{x:Type TextBox}" TargetType="TextBox">
<Style.Triggers>
<Trigger Property="ToolTip" Value="{x:Static sys:String.Empty}">
<Setter Property="ToolTipService.IsEnabled" Value="False" />
</Trigger>
</Style.Triggers>
システム名前空間を xaml に追加してください -
xmlns:sys="clr-namespace:System;assembly=mscorlib"
于 2012-08-13T06:08:32.557 に答える
2
私は自分でこの問題を抱えていて、別の解決策を見つけました。私はこの質問が回答されたことを知っていますが、私と同じように、この質問に出くわす人がまだいるので、私の解決策を共有したいと思います:
XAML
<TextBox Name="textBox1" ToolTip="{Binding Text, RelativeSource={RelativeSource Self}}" ToolTipService.IsEnabled="False"/>
コードビハインド
private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
{
if (textBox1.Text.Length > 0)
{
ToolTipService.SetIsEnabled(textBox1, true);
}
}
これが誰かに役立つことを願っています。
于 2014-06-18T19:56:12.070 に答える
0
Visibility Mode & TextChange イベントで試してみました。テキストがない場合、ツールチップは非表示になります。誰かに役立つかもしれません。Xaml:
<TextBox Height="23" Width="100" Name="myTextBox" TextChanged="myTextBox_TextChanged" >
<TextBox.ToolTip>
<ToolTip Visibility="Hidden">
<TextBlock Name="toolTipTextBlock"></TextBlock>
</ToolTip>
</TextBox.ToolTip>
</TextBox>
TextChange イベント ハンドラ:
private void myTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox tb = sender as TextBox;
if (tb.Text.Trim() == "")
{
((ToolTip)tb.ToolTip).Visibility = Visibility.Hidden;
}
else
{
toolTipTextBlock.Text = tb.Text;
((ToolTip)tb.ToolTip).Visibility = Visibility.Visible;
}
}
于 2013-04-19T04:37:00.007 に答える