精华内容
下载资源
问答
  • WPF学习之TextBlock

    2015-12-14 22:15:35
    TextBlock属性
  • textblock中文字遮盖的内容以自动滚动的方式呈现出来
  • wpf Textblock 文字过长时,中间用省略号代替。有好的方法,请回复
  • Add hyperlink to textblock wpf Displaying is rather simple, the navigation is another question. XAML goes like this: <TextBlock Name="TextBlockWithHyperlink"> Some text ...

    Add hyperlink to textblock wpf

     

    Displaying is rather simple, the navigation is another question. XAML goes like this:

    <TextBlock Name="TextBlockWithHyperlink"> Some text <Hyperlink NavigateUri="http://somesite.com" RequestNavigate="Hyperlink_RequestNavigate"> some site </Hyperlink> some more text </TextBlock>

    And the event handler that launches default browser to navigate to your hyperlink would be:

    private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e) { System.Diagnostics.Process.Start(e.Uri.ToString()); }

    Edit: To do it with the text you've got from database you'll have to parse the text somehow. Once you know the textual parts and hyperlinked parts, you can build textblock contents dynamically in the code:

    TextBlockWithHyperlink.Inlines.Clear(); TextBlockWithHyperlink.Inlines.Add("Some text "); Hyperlink hyperLink = new Hyperlink() { NavigateUri = new Uri("http://somesite.com") }; hyperLink.Inlines.Add("some site"); hyperLink.RequestNavigate += Hyperlink_RequestNavigate; TextBlockWithHyperlink.Inlines.Add(hyperLink); TextBlockWithHyperlink.Inlines.Add(" Some more text");

     

    转载于:https://www.cnblogs.com/chucklu/p/11437655.html

    展开全文
  • 一、不换行显示省略号,鼠标移上去显示全部Text MaxWidth=“110” TextWrapping=“NoWrap” TextTrimming=“CharacterEllipsis” ToolTip="{Binding Text,RelativeSource={RelativeSource Self}}" 二、可以换行 ...

    一、不换行显示省略号,鼠标移上去显示全部Text
    MaxWidth=“110” TextWrapping=“NoWrap” TextTrimming=“CharacterEllipsis” ToolTip="{Binding Text,RelativeSource={RelativeSource Self}}"

    二、可以换行
    TextWrapping=“Wrap”
    此处最好设置MaxWidth,若不设置,也应当设置Margin,使其拥有最大宽度

    三、特殊文字显示高亮

    public class UnicWordTextBlock : TextBlock
        {
            public static readonly DependencyProperty NewBackgroundProperty = DependencyPropertyManager.Register("NewBackground",
                typeof(Brush), typeof(UnicWordTextBlock), new PropertyMetadata(null));
    
            public Brush NewBackground
            {
                get { return (Brush)GetValue(NewBackgroundProperty); }
                set { SetValue(NewBackgroundProperty, value); }
            }
            public static readonly DependencyProperty NewForeColorProperty = DependencyPropertyManager.Register("NewForeColor",
                typeof(Brush), typeof(UnicWordTextBlock), new PropertyMetadata(null));
    
            public Brush NewForeColor
            {
                get { return (Brush)GetValue(NewForeColorProperty); }
                set { SetValue(NewForeColorProperty, value); }
            }
    
            public static readonly DependencyProperty UnicWordProperty = DependencyPropertyManager.Register("UnicWord",
                typeof(string), typeof(UnicWordTextBlock), new PropertyMetadata(""));
    
            public string UnicWord
            {
                get { return (string)GetValue(UnicWordProperty); }
                set
                {
                    SetValue(UnicWordProperty, value);
                }
            }
            public override void EndInit()
            {
                if (!string.IsNullOrEmpty(this.Text) && !string.IsNullOrEmpty(this.UnicWord) && this.Text.Contains(UnicWord))
                {
                    string text = this.Text.ToString();
                    string unicWord = this.UnicWord.ToString();
                    int beforeEndIndex = 0;
                    this.Text = "";
                    for (int i = 0; i < text.Length; i++)
                    {
                        if (i < text.Length - unicWord.Length && text.Substring(i, unicWord.Length) == unicWord)
                        {
                            //将当前出现的关键词的前一段文字设置正常样式
                            string beforeString = text.Substring(beforeEndIndex, i - beforeEndIndex);
                            Run run = new Run(beforeString);
                            run.Foreground = this.Foreground;
                            this.Inlines.Add(run);
                            //设置关键词样式
                            Run unicRun = new Run(unicWord);
                            unicRun.Foreground = this.NewForeColor;
                            unicRun.Background = this.NewBackground;
                            this.Inlines.Add(unicRun);
                            i += (unicWord.Length - 1);
                            beforeEndIndex = i + 1;
                        }
                        else if (i == text.Length - 1)
                        {
                            string beforeString = text.Substring(beforeEndIndex, i - beforeEndIndex);
                            Run run = new Run(beforeString);
                            run.Foreground = this.Foreground;
                            this.Inlines.Add(run);
                        }
                    }
                }
            }
        }
    

    三、如何让TextBlock的ToolTip只在文本显示不全时显示
    1.Converter代码

    /// <summary>
        /// Text cannot be displayed through ToolTip prompts
        /// </summary>
        public class TrimmedTextBlockVisibilityConverter : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                if (value == null)
                {
                    return Visibility.Collapsed;
                }
    
                TextBlock textBlock = (TextBlock)value;
                bool isTrim = IsTextTrimmed(textBlock);
    
                if (isTrim)
                {
                    textBlock.ToolTip = textBlock.Text;
                    return Visibility.Visible;
                }
                else
                {
                    return Visibility.Collapsed;
                }
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                throw new NotImplementedException();
            }
    
            /// <summary>
            /// Determine whether the current display is incomplete and truncated
            /// </summary>
            /// <param name="textBlock"></param>
            /// <returns></returns>
            private bool IsTextTrimmed(TextBlock textBlock)
            {
                Typeface typeface = new Typeface(
                    textBlock.FontFamily,
                    textBlock.FontStyle,
                    textBlock.FontWeight,
                    textBlock.FontStretch);
    
                FormattedText formattedText = new FormattedText( textBlock.Text, System.Threading.Thread.CurrentThread.CurrentCulture, textBlock.FlowDirection, typeface, textBlock.FontSize, textBlock.Foreground);
                bool isTrimmed = (int)formattedText.Width > (int)textBlock.ActualWidth;
                return isTrimmed;
            }
        }
    

    2.界面引用代码

    <converters:TrimmedTextBlockVisibilityConverter x:Key="TrimToolTipConverter" />
    
    <ToolTip Visibility="{Binding RelativeSource={RelativeSource Self}, Path=PlacementTarget, Converter={StaticResource TrimToolTipConverter},UpdateSourceTrigger=PropertyChanged}" />
    
    展开全文
  • WPF TextBlock自定义内容

    千次阅读 2015-07-29 09:38:05
    要用到WPF打印,在画界面的时候一段文字内需要有空格,下划线填空,如果用多个TextBlock或者Label拼接的话放在WarpPanel里面排列会因为控件长度问题产生有的行没填满就换行。 只能放在一个TextBlock里面解决。   ...

    要用到WPF打印,在画界面的时候一段文字内需要有空格,下划线填空,如果用多个TextBlock或者Label拼接的话放在WarpPanel里面排列会因为控件长度问题产生有的行没填满就换行。

    只能放在一个TextBlock里面解决。

     


    txtContent.Inlines.Add("   你于");

    txtContent.Inlines.Add(new Underline(new Run(viewModel.ComplaintDate.Year.ToString())));

    txtContent.Inlines.Add("年");

    txtContent.Inlines.Add(new Underline(new Run(viewModel.ComplaintDate.Month.ToString())));

    txtContent.Inlines.Add("月");

    txtContent.Inlines.Add(new Underline(new Run(viewModel.ComplaintDate.Day.ToString())));



    源自: http://blog.csdn.net/zhangjiyehandsom/article/details/5498845

    展开全文
  • 后台定义一个字符串,怎么才能实时更新到前台进行显示?似乎不能使用{x:Static local:ClassName.Field},还有没有其他方式呢?
  • WPFTextBlock 和 TextBox 区别

    千次阅读 热门讨论 2019-05-19 12:11:52
    相同点: ...TextBlock: 更多的用来显示排版内容; 可以包括不同字体、颜色和大小的文本; 线高也可以从默认设置增加,以在每行文本之间提供更多空间; 用户无法选择 TextBlock 中的文本。 TextBo...

    相同点:

    1. 用来显示文本内容;
    2. 可以设置特定的高度和宽度或者设置为随文字大小自动更改高度宽度;
    3. 都可以设置字体的大小、类型、样式以及位置(左对齐,居中,右对齐);
    4. 都可以设置不透明度。

    不同点:

    TextBlock:
    更多的用来显示排版内容;
    可以包括不同字体、颜色和大小的文本;
    线高也可以从默认设置增加,以在每行文本之间提供更多空间;
    用户无法选择 TextBlock 中的文本。

    TextBox:
    更多用来输入文本,或者用户需要选择;
    字体只能设置为一种颜色,一种大小,一种类型等;
    可以设置为固定的高度和宽度,但也可以打开滚动条以允许盛放更多内容。

    展开全文
  • 在上一篇文章中,我们研究了 TextBlock 控件的核心功能:显示一个简单的字符串并在必要时对其进行包装。我们甚至使用了不同于默认颜色的另一种颜色来呈现文本,但是如果您想做的不仅仅是为 TextBlock 中的所有文本...
  • wpf 动态设置textblock的字体颜色

    千次阅读 2021-04-06 15:45:54
    动态设置textblock的字体颜色 <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding IsSuccess, Converter={StaticResource BoolToSucces
  • WPF 设置TextBlock 自动换行

    千次阅读 2019-09-25 11:04:23
    <TextBlock TextWrapping="Wrap" ></TextBlock>```
  • WPF TextBlock的数据绑定

    千次阅读 2020-11-20 13:46:32
    TextBlock Text="{Binding PrintTimes}" Height="auto" Width="500" HorizontalAlignment="Center" /> 现在,想绑定另一个属性名 是否可以将两个或多个值同时绑定? 可以用如下代码实现 <TextBlock> ...
  • WPF textblock搜索关键字,并修改字体格式(颜色和背景色),源工程代码
  • WPF TextBlock 的换行符

    万次阅读 2013-12-08 10:33:58
    Text="第一行 第二行"/> 文字中间加上: 就可以了。
  • WPF 分散对齐TextBlock

    2020-11-11 13:38:57
    用了一个UserControl实现(可以设置文字对齐方式外,单独提供一个bool量控制是否分散分散,分散对齐情况下HorizontalContentAlignment和...using System.Text; using System.Threading.Tasks; using System.Window
  • xaml中TextBlock显示上标的方法
  • WPF TextBlock 实现点击事件

    千次阅读 2020-03-25 10:02:08
    TextBlock 标签里定义MouseLeftButtonDown 事件 xaml.cs :
  • TextBlock x:Name="labelState" Text="{Binding SourcePowerState}" Grid.Row="1" Grid.Column="3" VerticalAlignment="Center" Width="50" FontSize="20"> <TextBlock.Style> <Style TargetType=...
  • WPF Textblock Run 动态绑定 空白问题

    千次阅读 2020-03-05 18:59:46
    正常编写: <TextBlock > <Run Text="F"></Run> <Run Text="60"></Run> <Run Text="五4"></Run> </TextBlock> 显示结果如下图: ...
  • WPF TextBlock子元素

    2021-07-15 11:56:57
    以前绑定TextBlock我要定义好几个TextBlock,最后发现有个Run参数,使用起来方便很多
  • 效果: 参考: A Textblock itself can't do vertical alignment The best way to do this that I've found is to put the textblock inside a border, so the border does the alignment for you. Note: This is ...
  • TextBlock主要用来显示文字。比如: TextBlock是默认不自动换行的,如果非常想TextBlock换行话,可以设定属性 TextWrapping=“Wrap”。 TextBlock其实可以添加很多子元素,比如: hello the world 其中...
  • WPF控件TextBlock中文字自动换行

    万次阅读 2014-09-16 15:54:56
    如题,在很多的WPF项目中,往往
  • 原本TextBlock显示图片是很容易的,即TextBlock.Inlines.Add(UiElement element);这个方法即可, 但是,会出现如下效果: 我不想要这种效果,所以改了下代码,变成了如下效果: 单独的Xaml也可以实现,...
  • WPF 中的 TextBlock 不存在 Command,但在某些场合下,需要将 TextBlock 像按钮一样使用,此时,则需要像按钮那样绑定命令;具体实现方式如下所述: 使用 NuGet 安装 Microsoft.Xaml.Behaviors.Wpf ; 安装后,在 ...
  • WPFTextBlock控件中字符之间的间隔是不可以设置的,但是可以通过ItemsControl控件实现该功能 1、界面代码 <ItemsControl x:Name="itemCtrl" ItemsSource="{Binding Path=Title, RelativeSource={...
  • WPF TextBlock 每个文字一个颜色

    千次阅读 2019-03-25 11:35:45
    啥也不多说 附上源码 ...public class MyTextBlock:TextBlock { public static readonly DependencyProperty NewForeColorProperty = DependencyPropertyManager.Register("NewForeColor", typeof(Brus...
  • wpf TextBlock仅输入数字

    2019-11-06 16:51:51
    //调用方法
  • 常规的WPF操作: <ScrollViewer Width="300" Height="150" BorderBrush="Brown" BorderThickness="2" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"> ...
  • 视频介绍了一个方案,可以判断TextBlock复杂的内容(包含Run/Span等inline标签)情况下是否显示省略号/是否被截取/截断,主要代码 public class TextBlockEx:TextBlock { /// /// 当前文字是否被截取 /// public bool ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,111
精华内容 6,044
关键字:

textblockwpf