WPF_TextBlock模型

TextBlock模型实际上指的就是System.Windows.Controls.TextBlock类,它是一个用于显示少量流内容的轻量控件。其中包含一个InLines属性,支持 Inline 流内容元素的承载和显示。 支持的元素包括 AnchoredBlock、Bold(粗体字符串)、Hyperlink(超链接,在浏览器支持的模式下有效)、InlineUIContainer(承载其他控件的容器)、Italic(斜体字符串)、LineBreak(换行符)、Run(普通字符串)、Span(可以设置字体、颜色等的Span) 和 Underline(下划线)。

  例如

   1: <StackPanel Orientation="Horizontal">

   2:     <Border BorderThickness="2" Margin="5" BorderBrush="Black">

   3:         <TextBlock Margin="5" TextWrapping="WrapWithOverflow">

   4:             <TextBlock.Inlines>

   5:                 <Bold>

   6:                     <Run>BlockText 控件XAML示例</Run>

   7:                 </Bold>

   8:                 <LineBreak/>

   9:                 <Run>TextBlock支持以下的几种流显示样式:</Run>

  10:                 <LineBreak/>

  11:                 <Bold>粗体(Bold</Bold>

  12:                 <LineBreak/>

  13:                 <Italic>斜体(Italic</Italic>

  14:                 <LineBreak/>

  15:                 <Underline>下划线(Underline</Underline>

  16:                 <LineBreak/>

  17:                 <Hyperlink NavigateUri=http://www.microsof.com>

                      超级链接</Hyperlink>

  18:                 <LineBreak/>

  19:                 <Span Foreground="Red" FontSize="18">Span设置字体、颜色等</Span>

  20:                 <LineBreak />

  21:                 <InlineUIContainer>

  22:                     <StackPanel Background="AntiqueWhite" Margin="5">

  23:                         <TextBlock>Inline UI 容器</TextBlock>

  24:                         <Button Content="按钮" Width="80" />

  25:                     </StackPanel>

  26:                 </InlineUIContainer>

  27:             </TextBlock.Inlines>

  28:         </TextBlock>

  29:     </Border>

  30:     <Border BorderThickness="2" Margin="5" BorderBrush="Black">

  31:         <TextBlock Margin="5" TextWrapping="WrapWithOverflow" x:Name="textBlock">

  32:             <TextBlock.Inlines>

  33:                 <Bold>

  34:                     <Run x:Name="title"></Run>

  35:                 </Bold>

  36:                 <LineBreak x:Name="line"/>

  37:                 <InlineUIContainer x:Name="container">

  38:                     <StackPanel Background="AntiqueWhite" Margin="5" x:Name="panel">

  39:                     </StackPanel>

  40:                 </InlineUIContainer>

  41:             </TextBlock.Inlines>

  42:         </TextBlock>

  43:     </Border>

  44: </StackPanel>

  使用代码操作Inlines:

            TextBlock myTextBlock = new TextBlock();

            myGrid.Children.Add(myTextBlock);

            myTextBlock.Inlines.Add("TextBlock的使用:");

            Italic myItalic = new Italic(new Run("(如Width Hight等)"));

            myItalic.FontSize = 24;

            myItalic.Foreground = Brushes.Purple;

            myTextBlock.Inlines.Add(myItalic);

            myTextBlock.Inlines.Add("是很奇怪的,它不是普通的像素,这个单位被称为与设备无关的单位");

            myTextBlock.TextWrapping = TextWrapping.WrapWithOverflow;

            Bold myBold = new Bold(new Italic(new Run("(Device-independent unit)")));

            myTextBlock.Inlines.Add(myBold);

            myTextBlock.HorizontalAlignment = HorizontalAlignment.Stretch;

            myTextBlock.Inlines.Add(new LineBreak());

            Bold myBold1 = new Bold(new Run("粗体"));

            myTextBlock.Inlines.Add(myBold1);

            myTextBlock.Inlines.Add(new LineBreak());

            Underline myUnderline = new Underline(new Run("下划线"));

            myTextBlock.Inlines.Add(myUnderline);

            myTextBlock.Inlines.Add(new LineBreak());

            Hyperlink myHyperlink=new Hyperlink(new Run("百度"));

            myHyperlink.NavigateUri = new Uri("http://www.baidu.com");

            myTextBlock.Inlines.Add(myHyperlink);

            myTextBlock.Inlines.Add(new LineBreak());

            Span mySpan = new Span(new Run("Span设置字体、颜色等"));

            mySpan.Foreground = Brushes.Red;//或者改为:mySpan.Foreground=new SolidColorBrush(Colors.Red);

            myTextBlock.Inlines.Add(mySpan);

            myTextBlock.Inlines.Add(new LineBreak());

            InlineUIContainer myInlineUIContainer = new InlineUIContainer();

             myTextBlock.Inlines.Add(myInlineUIContainer);

            StackPanel myStackPanel=new StackPanel();

            myInlineUIContainer.Child = myStackPanel;

            Button myButton = new Button();

            myButton.Content = "lucky";

            myStackPanel.Children.Add(myButton);

  (代码部分的执行结果)执行结果:

  本文来自zhangjiyehandsom的博客,原文地址:http://blog.csdn.net/zhangjiyehandsom/article/details/5498845

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值