标签: textblock

在WPF文本块中获取段落的最佳方法是什么?(换行符?)

我有一些文本有"\ r \n"换行标记.我想在WPF文本块中添加换行符.我试过用" "替换"\ r \n" (没有空格),当我在XAML中设置Text属性时起作用,但在从C#代码隐藏设置时似乎不起作用.

那么......将"\ r \n"转换为WPF文本块中的换行符的标准方法是什么?

wpf newline textblock

8
推荐指数
2
解决办法
2万
查看次数

WPF在TextBlock上设置默认样式会覆盖Label的样式

在TextBlock上设置默认样式会导致Label和其他控件中的样式也被设置.只有将样式放在Application资源中才会发生这种情况,当我将样式放在Window资源中时,一切都很好.

我还发现VS 2008 Designer和XamlPadX会像您期望的那样显示Label,但只有在现实生活中执行应用程序时才会出现问题.

<Application x:Class="WpfApplication.App"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   StartupUri="Window1.xaml">
   <Application.Resources>
       <ResourceDictionary>
           <Style TargetType="TextBlock">
               <Setter Property="FontSize" Value="8"/>
           </Style>

           <Style x:Key="Title" TargetType="Label">
               <Setter Property="FontSize" Value="32"/>
           </Style>
       </ResourceDictionary>
   </Application.Resources>
</Application>

<Window x:Class="WpfApplication.Window1"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Height="300"
       Title="Window1"
       Width="300">
   <StackPanel>

       <TextBlock Text="TextBlock No Style" Style="{x:Null}"/>
       <Label Content="Label No Style" Style="{x:Null}"/>

       <TextBlock Text="Default TextBlock"/>
       <Label Content="Default Label" Style="{StaticResource Title}"/>

   </StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

上面的代码显示:

TextBlock No Style - Default font size (As you would expect)
Label No Style - Size 5 font size (How did this happen?)
Default …
Run Code Online (Sandbox Code Playgroud)

wpf styles default textblock font-size

8
推荐指数
1
解决办法
2万
查看次数

如何将变量与文本块绑定

我想知道如何将文本块绑定到我的C#类中的变量.

基本上我的.cs文件中有一个"cart"变量.在那个Cart类中,我可以访问不同的总数.

以下是我对绑定的看法,但它似乎没有绑定到变量......

<StackPanel
   Width="Auto"
   Height="Auto"
   Grid.ColumnSpan="2"
   Grid.Row="5"
   HorizontalAlignment="Right">
   <TextBlock
      Name="Subtotal"
      FontFamily="Resources/#Charlemagne Std"
      FontSize="20"
      Text="{Binding ElementName=cart, Path=SubTotal}">
   </TextBlock>
   <TextBlock
      Name="Tax"
      FontFamily="Resources/#Charlemagne Std"
      FontSize="20"
      Text="{Binding ElementName=cart, Path=Tax}">
   </TextBlock>
   <TextBlock
      Name="Total"
      FontFamily="Resources/#Charlemagne Std"
      FontSize="20"
      Text="{Binding ElementName=cart, Path=Total}">
   </TextBlock>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?再次感谢您的帮助!

data-binding wpf textblock

8
推荐指数
2
解决办法
3万
查看次数

Textblock.TextTrimming在网格内不起作用

我的布局有一个3列网格,每个网格的宽度都设置为Width="*".对于中间(第二)网格,我有另外3列网格,每个网格包含它自己的文本块,并且列网格宽度再次设置为Width="*".

调整窗口大小时,网格会按预期调整大小,但如果文本超出网格边界,则第3个文本块不会被修剪.我有文本框设置TextTrimming="WordEllipsis"TextWrapping="Wrap",并且由于某种原因没有强制执行属性.

这是我的一些代码:

布局网格:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition MinWidth="150" MaxWidth="300" Width="1*" />
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition MinWidth="150" MaxWidth="500" Width="1*" />
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="2*"/>
    </Grid.ColumnDefinitions>
</Grid>
Run Code Online (Sandbox Code Playgroud)

第二列代码:

<Grid Grid.Column="2" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="5" Width="Auto">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>

    <TextBlock Text="{Binding Path=FeedItems.Count}" Foreground="White" FontSize="18" Width="Auto" FontWeight="SemiBold" />
    <TextBlock Text=" items from " Foreground="White" FontSize="18" Width="Auto" Grid.Column="1" />
    <TextBlock Text="{Binding Path=Name}" Foreground="White" FontSize="18" Grid.Column="2" TextTrimming="CharacterEllipsis" HorizontalAlignment="Left" Width="Auto" TextWrapping="NoWrap" ClipToBounds="True" /> …
Run Code Online (Sandbox Code Playgroud)

wpf grid gridview textblock texttrimming

8
推荐指数
1
解决办法
8722
查看次数

如何在Silverlight文本块中显示简单的HTML?

我有一个包含HTML标签的数据源(B,I,A),需要在Silverlight ListBox中显示.

搜索它似乎是一个问题,但大多数帖子都很旧,似乎与Silverlight 1有关.

目前使用Silverlight显示简单HTML的最佳方法是什么,如果没有别的,只有B,I和A标签用于粗体,斜体和超链接?

html silverlight textblock

7
推荐指数
1
解决办法
5951
查看次数

WPF TextBlock填充正在切断文本

我有一个TextBlockGridPadding属性设置为5,有时候最后一个字符被切断,这取决于字符串Text属性设置为.

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SomeClass">
    <ScrollViewer Padding="5" VerticalScrollBarVisibility="Auto">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <Label
                Grid.Row="0" Grid.Column="0"
                Content="SomeLabel"
                HorizontalAlignment="Right"
                HorizontalContentAlignment="Right"
                VerticalAlignment="Center" />
            <TextBlock
                Grid.Row="0" Grid.Column="1"
                HorizontalAlignment="Left"
                Padding="5"
                Text="0x0F"
                TextWrapping="Wrap"
                VerticalAlignment="Top" />
        </Grid>
    </ScrollViewer>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

Text设置为0x0FF不可见.当它设置为0xAB字符串显示就好了.设置Padding为0也使字符串显示正常.

wpf textblock padding

7
推荐指数
1
解决办法
8979
查看次数

将WPF文本设置为TextBlock

我知道TextBlock可以提出一个FlowDocument,例如:

<TextBlock Name="txtFont">
     <Run Foreground="Maroon" FontFamily="Courier New" FontSize="24">Courier New 24</Run>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

我想知道如何将FlowDocument存储在变量中的一个设置为a TextBlock.我正在寻找类似的东西:

string text = "<Run Foreground="Maroon" FontFamily="Courier New" FontSize="24">Courier New 24</Run>"
txtFont.Text = text;
Run Code Online (Sandbox Code Playgroud)

但是,上面代码的结果是XAML文本显示为未解析.


编辑:我想我的问题不够明确.我真正想要达到的目的是:

  1. 用户将一些文本输入到RichTextBox中.
  2. 应用程序FlowDocumentRichTextBox保存用户输入,并将其序列化到磁盘.
  3. FlowDocument从磁盘到可变反序列化文本.
  4. 现在,我希望能够以一种方式呈现用户文本TextBlock.

因此,据我所知,创建一个新的Run对象并手动设置参数将无法解决我的问题.


问题是序列化RichTextBox会创建Section对象,我无法将其添加到TextBlock.Inlines.因此,无法将反序列化的对象设置为TextBlock的TextProperty.

c# wpf xaml textblock flowdocument

7
推荐指数
2
解决办法
9174
查看次数

如何在WPF中的TextBlock中为Text添加边框?

我是WPF的新手,不知道这个问题是不是很奇怪.我想知道是否可以在textBlock中的文本周围添加边框.

编辑:

根据建议,我尝试了两种方法,但没有取得多大成功:

<Border BorderBrush="#FF0B232F" BorderThickness="2">
   <TextBlock HorizontalAlignment="Left" Text="TextBlock" TextWrapping="Wrap" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" OpacityMask="Black"/>      
</Border>
Run Code Online (Sandbox Code Playgroud)

<Label BorderBrush="#FF0B232F" BorderThickness="2,2,2,2" Content="TextBlock" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" />
Run Code Online (Sandbox Code Playgroud)

我在这里做错了吗?

wpf textblock

7
推荐指数
1
解决办法
2万
查看次数

TextBlock中的多种颜色

是否可以为TextBlock添加动态颜色..我有一个颜色的一个字符和另一个颜色的下一个字符.

<TextBlock Text="{Binding no}" TextWrapping="Wrap" Margin="10,0,0,0" Style="{StaticResource PhoneTextSubtleStyle}" FontSize="40" Foreground="#A400C4FF" >
  // Can we add something here to specify what colours for what chars
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

基本上我从no输入动态4字符序列.我将它绑定到ListBox中的TextBlock.是否可以使用不同颜色的字符.

如果是这样,可以动态添加这些颜色,例如.如果我点击按钮,某些字符会改变颜色?

谢谢.任何帮助表示赞赏.

xaml textblock text-coloring windows-phone-7

7
推荐指数
1
解决办法
2万
查看次数

XAML TextBlock以编程方式设置特殊字符?

我想在XAML中使用font awesome(http://fortawesome.github.io/Font-Awesome/design.html).

我已经能够通过直接XAML轻松地使它工作,通过创建一个字体文件夹并在那里添加字体,然后在XAML中:

<TextBlock FontFamily="Fonts/#FontAwesome">&#xf000;</TextBlock>
Run Code Online (Sandbox Code Playgroud)

显示马提尼玻璃图标.

但是,当以编程方式添加它时,它只显示和无效的符号,如下所示:[],我尝试了以下内容:

XAML:

<TextBlock Name="textBlock"></TextBlock>
Run Code Online (Sandbox Code Playgroud)

C#:

textBlock.FontFamily = new FontFamily("Fonts/#FontAwesome");
textBlock.Text = HttpUtility.HtmlDecode("&#xf000;");
Run Code Online (Sandbox Code Playgroud)

以及返回文字字符串的以下内容:

textBlock.FontFamily = new FontFamily("Fonts/#FontAwesome");
textBlock.Text = "&#xf000;";
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

.net c# xaml textblock

7
推荐指数
1
解决办法
3232
查看次数