有沒有更好的方法來做到以下幾點?構建具有粗體和斜體標記文本的FrameworkElement的最簡單方法是什麼?
基本上,我需要一個簡單的方法來編程建立WrapPanel
(或其他FrameworkElement的)認爲:
- 包裹正確
- 允許一些話有大膽文本
- 允許某些詞有斜體文字
- 允許其他格式,例如,顏色,背景
- 理想會是一些方法,轉換例如「
This is <b>bold</b> and this is <i>italic</i> text.
」轉換爲適當的FrameworkElement,這樣我就可以將其添加到StackPanel並顯示它。
代碼:
using System.Windows;
using System.Windows.Controls;
namespace TestAddTextBlock2343
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
WrapPanel wp = new WrapPanel();
wp.AddTextBlock("This is a sentence with ");
{
TextBlock tb = wp.AddTextBlockAndReturn("bold text");
tb.FontWeight = FontWeights.Bold;
}
wp.AddTextBlock(" and ");
{
TextBlock tb = wp.AddTextBlockAndReturn("italic text");
tb.FontStyle = FontStyles.Italic;
}
wp.AddTextBlock(" in it.");
}
}
public static class XamlHelpers
{
public static TextBlock AddTextBlockAndReturn(this WrapPanel wp, string text)
{
TextBlock tb = new TextBlock();
tb.Text = text;
wp.Children.Add(tb);
return tb;
}
public static void AddTextBlock(this WrapPanel wp, string text)
{
TextBlock tb = wp.AddTextBlockAndReturn(text);
}
}
}