メニューを動的に作成しツールチップを表示させようとしています。
Panel3Shoken_ItemClick() でデータを取得しようとするとSystem.Windows.Controls.ToolTip という文字列も取得されてしまいます。
どのようにとりのぞいたらいいですか?
「{System.Windows.Controls.ToolTip: Anisakiasis}」余分に「{System.Windows.Controls.ToolTip: }」が付いてきます。
xaml
1 <Window.Resources> 2 : 3 <!-- ToolTip のテキストを Wrap して表示する --> 4 <Style TargetType="ToolTip" x:Key="ToolTipWrap"> 5 <Style.Resources> 6 <Style TargetType="ContentPresenter"> 7 <Style.Resources> 8 <Style TargetType="TextBlock"> 9 <Setter Property="TextWrapping" Value="Wrap" /> 10 </Style> 11 </Style.Resources> 12 </Style> 13 </Style.Resources> 14 <Setter Property="MaxWidth" Value="600" /> 15 <Setter Property="Background" Value="Bisque"/> 16 </Style> 17 </Window.Resources>
C#
1 // Tooltip のスタイル取得 2 var tooltipStyle = FindResource("ToolTipWrap"); 3 4 MenuItem panel3 = new MenuItem(); 5 6 string id = i.ToString() + k.ToString(); 7 if (shindan[j].Id == id) 8 { 9 panel3.Header = shindan[j].Title; 10 //panel3.ToolTip = shindan[j].Data; 11 12 ToolTip tooltip = new System.Windows.Controls.ToolTip(); 13 tooltip.Style = tooltipStyle as Style; 14 tooltip.Content = shindan[j].Data; 15 panel3.ToolTip = tooltip; <- 修正 16 17 panel3.Background = Brushes.Beige; 18 panel3.Click += Panel3_ItemClick; 19 //panel3.ToolTip..Background = Brushes.Beige; 20 panel2[k].Items.Add(panel3); 21 panel3 = null; 22 } 23 24 25 private void Panel3Shoken_ItemClick(object sender, RoutedEventArgs e) 26 { 27 MenuItem item = (MenuItem)sender; 28 29 : 30 textEditor2.Text += item.ToolTip.ToString(); 31 : 32 } 33 } 34
よくわかりませんが
item.ToolTip.ToString();
としてるので、型名がついてきてるんじゃないですか?
item.ToolTip.Content.ToString();
にするとどうなりますか?
回答1件
あなたの回答
tips
プレビュー