C# TextBlock Windows Phone 8.1中的文本格式
我的C# TextBlock Windows Phone 8.1中的文本格式,c#,windows-phone-8,windows-store-apps,windows-phone-8.1,C#,Windows Phone 8,Windows Store Apps,Windows Phone 8.1,我的ViewModel中有一个字符串列表,格式如下: This is an <b>example.<b> 这是一个例子。 我希望在视图中有某种文本控件,可以通过数据绑定显示格式化文本,如下所示: 这是一个示例。 我找不到任何可以这样运行的内置控件 有人知道如何处理吗?您可以使用: 这是一个 为此,您必须解析字符串,选择粗体部分,并在代码隐藏中定义内容。一个非常简单的示例如下所示: string-example=@“这是一个示例。”; var str=exampl
ViewModel
中有一个字符串列表,格式如下:
This is an <b>example.<b>
这是一个例子。
我希望在视图中有某种文本控件,可以通过数据绑定显示格式化文本,如下所示:
这是一个示例。
我找不到任何可以这样运行的内置控件
有人知道如何处理吗?您可以使用:
这是一个
为此,您必须解析字符串,选择粗体部分,并在代码隐藏中定义内容。一个非常简单的示例如下所示:
string-example=@“这是一个示例。”;
var str=example.Split(新字符串[]{“”“”},StringSplitOptions.None);
对于(int i=0;i
编辑-与绑定一起使用
如果您想使用上面的绑定过程,那么它就不是那么简单了-TextBlock.Inlines不是dependencProperty,所以我们不能使用它。尽管如此,还是有一种方法可以做到这一点——您需要以某种方式扩展TextBlock——这是另一个陷阱——它是密封的类,所以没有继承。在这种情况下,我们必须使用另一个类():
公共静态类TextBlockExtension
{
公共静态字符串GetFormattedText(DependencyObject obj)
{return(string)obj.GetValue(FormattedTextProperty);}
公共静态void SetFormattedText(DependencyObject对象,字符串值)
{obj.SetValue(FormattedTextProperty,value);}
公共静态只读DependencyProperty FormattedTextProperty=
DependencyProperty.Register(“FormattedText”、typeof(string)、typeof(TextBlockExtension),
新属性元数据(string.Empty,(发件人,e)=>
{
string text=e.NewValue作为字符串;
var textBl=发送方作为文本块;
如果(textBl!=null)
{
textBl.Inlines.Clear();
var str=text.Split(新字符串[]{“”“”},StringSplitOptions.None);
对于(int i=0;i
然后您可以在xaml中使用它,如下所示:
您可以使用:
这是一个
为此,您必须解析字符串,选择粗体部分,并在代码隐藏中定义内容。一个非常简单的示例如下所示:
string-example=@“这是一个示例。”;
var str=example.Split(新字符串[]{“”“”},StringSplitOptions.None);
对于(int i=0;i
编辑-与绑定一起使用
如果您想使用上面的绑定过程,那么它就不是那么简单了-TextBlock.Inlines不是dependencProperty,所以我们不能使用它。尽管如此,还是有一种方法可以做到这一点——您需要以某种方式扩展TextBlock——这是另一个陷阱——它是密封的类,所以没有继承。在这种情况下,我们必须使用另一个类():
公共静态类TextBlockExtension
{
公共静态字符串GetFormattedText(DependencyObject obj)
{return(string)obj.GetValue(FormattedTextProperty);}
公共静态void SetFormattedText(DependencyObject对象,字符串值)
{obj.SetValue(FormattedTextProperty,value);}
公共静态只读DependencyProperty FormattedTextProperty=
DependencyProperty.Register(“FormattedText”、typeof(string)、typeof(TextBlockExtension),
新属性元数据(string.Empty,(发件人,e)=>
{
string text=e.NewValue作为字符串;
var textBl=发送方作为文本块;
如果(textBl!=null)
{
textBl.Inlines.Clear();
var str=text.Split(新字符串[]{“”“”},StringSplitOptions.None);
对于(int i=0;i
然后您可以在xaml中使用它,如下所示:
您可以使用RichTextBlock控件。比如:
<RichTextBlock>
<Paragraph>
This is an <Bold>example</Bold>
</Paragraph>
</RichTextBlock>
这是一个例子
您可以使用RichTextBlock控件。比如:
<RichTextBlock>
<Paragraph>
This is an <Bold>example</Bold>
</Paragraph>
</RichTextBlock>
这是一个例子
我不会删除空条目。这将打破“这不应该都是大胆的”@僵尸羊你是对的。尽管如此,它仍然是一个非常基本的例子,需要更多的改进(这也取决于OP的实现)。这应该对OP有帮助,剩下的我留给他。我不会删除空条目。这将打破“这不应该都是大胆的”@僵尸羊你是对的。尽管如此,它仍然是一个非常基本的例子,需要更多的改进(这也取决于OP的实现)。这应该对OP有帮助,剩下的我就留给他了。看这个链接,它对我非常有效:看这个链接,它对我非常有效: