/// <summary> /// SizeChanged イベント /// </summary> /// <param name="sender">対象</param> /// <param name="e">イベント情報</param> private static void Label_SizeChanged(object sender, SizeChangedEventArgs e) { var label = sender as Label; if (label == null) { // 対応するエレメントが許容する型ではない場合は中断 return; } if (!GetIsEnabled(label)) { return; } var formattedText = BehaviorUtil.GetFormattedText(label); if (label.ActualWidth < formattedText.Width + label.Padding.Left + label.Padding.Right) { label.ToolTip = label.Content; } else { label.ToolTip = null; } }
private static void Control_Loaded(object sender, RoutedEventArgs e) { var control = sender as Control; if (control == null) { // 対応するエレメントが許容する型ではない場合は中断 return; } var tooltip = GetToolTip(control); if (tooltip == null) { return; } if (tooltip is FrameworkElement) { var formattedText = BehaviorUtil.GetFormattedText((FrameworkElement)tooltip); if (!string.IsNullOrEmpty(formattedText.Text)) { control.ToolTip = tooltip; } } else if (tooltip is string && !string.IsNullOrEmpty((string)tooltip)) { control.ToolTip = tooltip; } else { control.ToolTip = tooltip; } }
/// <summary> /// TextBlockの文字をFormattedText化して、その高さを取得します。 /// </summary> /// <param name="block">オブジェクト</param> private static double GetFormattedTextHeight(TextBlock block) { var formatted = BehaviorUtil.GetFormattedText(block, "1"); return(formatted.Height); }