写入:
private void Test()
{
InlineUIContainer container = new InlineUIContainer();
container.Child = getDataGrid();
richTextBox1.Selection.Insert(container);
container = new InlineUIContainer();
container.Child = getGrid();
richTextBox1.Selection.Insert(container);
container = new InlineUIContainer();
container.Child = getCalendar();
richTextBox1.Selection.Insert(container);
ReturnFocus();
}
private DataGrid getDataGrid()
{
DataGrid dg = new DataGrid();
dg.Columns.Add(new DataGridTextColumn() { Header = "序号" });
dg.Columns.Add(new DataGridTextColumn() { Header = "代码" });
dg.Columns.Add(new DataGridTextColumn() { Header = "名称" });
dg.Columns.Add(new DataGridTextColumn() { Header = "涨幅" });
dg.Columns.Add(new DataGridTextColumn() { Header = "现价" });
//dg.AutoGenerateColumns = true;
dg.Width = 500;
dg.Height = 150;
return dg;
}
private Grid getGrid()
{
Grid g = new Grid();
//g.ShowGridLines = true;
g.ColumnDefinitions.Add(new ColumnDefinition() { Width=new GridLength(300)});
g.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(300) });
g.RowDefinitions.Add(new RowDefinition() { Height=new GridLength(54) });
g.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(54) });
g.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(54) });
for (int i = 0; i < g.RowDefinitions.Count;i++ )
{
for (int j = 0; j < g.ColumnDefinitions.Count; j++)
{
TextBox tb = new TextBox();
tb.BorderThickness = new Thickness(1);
tb.BorderBrush = new SolidColorBrush(Colors.Black);
tb.Text = i.ToString() + "," + j.ToString();
Grid.SetRow(tb, i);
Grid.SetColumn(tb, j);
g.Children.Add(tb);
}
}
return g;
}
private Calendar getCalendar()
{
Calendar cal = new Calendar();
cal.Width = 179;
cal.Height = 169;
cal.FontFamily = new FontFamily("Portable User Interface");
cal.Style = Application.Current.Resources["CalendarStyle1"] as Style;
return cal;
}
----------------------------------------------------------------------------------
public void GetXaml()
{
if (this.richTextBox1.Blocks.Count == 0 || string.IsNullOrWhiteSpace(this.richTextBox1.Xaml))
{
return;
}
// 资源
foreach (Block b in this.richTextBox1.Blocks)
{
Paragraph paragraph = b as Paragraph;
if (paragraph != null)
{
foreach (var item in paragraph.Inlines)
{
InlineUIContainer inlineUIContainer = item as InlineUIContainer;
if (inlineUIContainer != null && inlineUIContainer.Child != null)
{
var editorControl = inlineUIContainer.Child;
}
}
}
}
}