私のカスタムコントロールでは、オプションに応じてプログラマティカルにツールチップを有効または無効にしたいと考えています。ここに私のアイコンは、テンプレートで定義された方法です:私は、ツールヒントにアクセスし、有効にするには、このコードを使用していツールヒントがnullです。どのように私はそれにアクセスするのですか?
<Image x:Name="PART_IconImage" Stretch="None" VerticalAlignment="Top" HorizontalAlignment="Center" Source="{TemplateBinding Icon}"
ToolTipService.ToolTip="{TemplateBinding Caption}" />
/それを無効にします。nullを返しますGetToolTip
// Enable tooltip when caption not shown
if (this.IconImage != null)
{
var toolTip = ToolTipService.GetToolTip(this.IconImage) as ToolTip;
if (toolTip != null)
toolTip.IsEnabled = this.CaptionVisibility.HasValue
? (this.CaptionVisibility.Value == Visibility.Collapsed)
: (this.ParentToolbar.CaptionsVisibility == Visibility.Collapsed);
}
を。どんな考え?
P.S.私はここでこのアドバイスに従っていた:How to programmatically access ToolTipService of a Silverlight FrameworkElement? しかし、それは私のために動作しません。
おそらく、それは文字列を返したことを修正します。私はそれを確認しなかった。私はそれが私のコントロールの中の公有財産ではないので、私は縛ることを躊躇しない。 XAMLを完全に削除し、必要なときに 'ToolTipService.SetToolTip'を実行するコードを書くことで、私はすでにこれを解決しました。私はあなたの方法で動作するので、私はすでに私の答えを持っているので、あなたの答えをマークします – katit