ツールチップのヘッダーのラベルを含むWPFツールチップを作成し、より詳細なテキストを含むテキストブロックを作成したいとします。私は、リソースディクショナリに次のスタイルを作成しました:カスタムWPFツールチップ
<Style x:Key="AppToolTip"
TargetType="ToolTip">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToolTip">
<StackPanel>
<Label Content="{TemplateBinding Content}" FontWeight="Bold" Background="Blue" Foreground="White">
</Label>
<TextBlock Padding="10" TextWrapping="WrapWithOverflow" Width="200">
</TextBlock>
</StackPanel>
</ControlTemplate>
</Setter.Value></Setter>
</Style>
そして成功しそうのようなボタンにこのスタイルを適用すると、ツールチップヘッダを持つことができますが表示されます。
<Button.ToolTip>
<ToolTip Style="{DynamicResource PalletToolTip}">
<Binding Source="{x:Static ResStrings.New}"/>
</ToolTip>
</Button.ToolTip>
私が上こだわって何
上記の使用法から余分な記述テキストの内容を設定するにはどうすればよいですか?私はすでにツールチップのヘッダーを表示するときにContentプロパティにデータバインディングをしています。 Adam NathanのWPF Unleashedの本は、私が彼の例のツールチップXAMLを使用していることを認識しますが、彼のケースでは、ラベルとテキストブロックの内容にハードコードされた文字列を使用しています。より再利用可能なものを作成したいので、データバインディングを使用して同じ効果を得たいと思っています。
ありがとうKent - これは最高のアプローチのように思えます。 – Auburg