我已经看过其他一些关于此的帖子,但没有看到任何可以解决我的问题。基本上,我需要在Stackpanel
或Wrappanel
中很好地包含一些文本(粗体和非粗体)。这是一个视觉:
我需要你看到的两个TextBlocks
的组合。我有第一个加粗TextBlock
,其中包含“标题:”,然后在同一行,我需要下一个TextBlock
,它可能包含也可能不包装。如果它确实换行,我需要顶行留在顶行然后换行,好像它都是一个TextBlock
。这是我需要的“油漆”视觉效果:
这是我到目前为止的代码:
<toolkit:WrapPanel Orientation="Horizontal">
<TextBlock Text="Title: " FontWeight="Bold"/>
<TextBlock TextWrapping="Wrap" Text="More text goes here " />
</toolkit:WrapPanel>
<toolkit:WrapPanel Orientation="Horizontal">
<TextBlock Text="Title: " FontWeight="Bold"/>
<TextBlock TextWrapping="Wrap" Text="More text goes here and I want it to wrap lines and go underneath the title but I can't get it to to do that. :( " />
</toolkit:WrapPanel>
现在,我不反对在一个 TextBlock
中完成此操作(如果可能)。我知道使用TextBlock.Inlines
我可以添加Run
粗体文本,然后添加另一个常规文本。问题是Inlines
cannot be bound使用MVVM(我在本演示中没有使用,但将在最终代码中使用)。
无论解决方案是什么,我都需要能够从代码隐藏中设置TextBlock
的值,以便我知道它可以用MVVM完成。
有谁知道实现这个目标的方法?
答案 0 :(得分:3)
对于每种字体样式,使用RichTextBox
控件和不同的运行。
<RichTextBox>
<Paragraph>
<Run FontWeight="Bold">Title:</Run>
<Run>More text goes here and I want it to wrap lines and go underneath the title but I can't get it to to do that. :(</Run>
</Paragraph>
</RichTextBox>
您可以将Run
元素的Text属性绑定到数据上下文,例如:
<RichTextBox>
<Paragraph>
<Run FontWeight="Bold"
Text="{Binding Header}"></Run>
<Run Text="{Binding Text}"></Run>
</Paragraph>
</RichTextBox>
答案 1 :(得分:0)
这对你有帮助:
<toolkit:WrapPanel Orientation="Horizontal">
<TextBlock>
<Run FontWeight="Bold" Text="{Binding Header}"></Run>
<Run Text="{Binding Text}"></Run>
</TextBlock>
</toolkit:WrapPanel>
答案 2 :(得分:0)
修复StackPanel的宽度属性。这可能对你有帮助。问题是,如果您没有将宽度属性设置为自动宽度。
<StackPanel Orientation="Horizontal" Width="400">
<TextBlock Text="Title: " FontWeight="Bold"/>
<TextBlock TextWrapping="Wrap" Text="More text goes here " />
</StackPanel >
<StackPanel Orientation="Horizontal" Width="400">
<TextBlock Text="Title: " FontWeight="Bold"/>
<TextBlock TextWrapping="Wrap" Text="More text goes here and I want it to wrap lines and go underneath the title but I can't get it to to do that. :( " />
</StackPanel >
答案 3 :(得分:0)
您是否尝试使用此类构造?
<TextBlock>
<TextBlock.Inlines>
<Bold>
<Bold.Inlines>
<Run Text="Title: "/>
</Bold.Inlines>
</Bold>
<Run Text="{Binding Text}"/>
</TextBlock.Inlines>
</TextBlock>
如果文本块应该只绑定到一个文本块,它就像一个魅力。