/// <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;
            }
        }
示例#2
0
        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);
        }