C# 如何在XamlReader加载后添加事件
我创建了一个类Rtb,它将创建一个新的RichTextBox,下面是构造函数和列表C# 如何在XamlReader加载后添加事件,c#,.net,wpf,file,richtextbox,C#,.net,Wpf,File,Richtextbox,我创建了一个类Rtb,它将创建一个新的RichTextBox,下面是构造函数和列表 public Rtb() { newRTB = new RichTextBox(); newRTB.IsReadOnly = true; newRTB.MouseDoubleClick += new MouseButtonEventHandler(newRTB_MouseDoubleClick); reqName = "Box" + Next
public Rtb()
{
newRTB = new RichTextBox();
newRTB.IsReadOnly = true;
newRTB.MouseDoubleClick += new MouseButtonEventHandler(newRTB_MouseDoubleClick);
reqName = "Box" + NextID.ToString();
newRTB.Name = reqName;
}
List<Rtb> rtbeditor = new List<Rtb>();
然后我使用XamlWriter保存它,问题是XamlWriter无法保存事件,因此我必须在加载它时将事件添加回,请参见下文
private void menuReq_Click(object sender, RoutedEventArgs e)
{
BlockUIContainer newBlockUC = new BlockUIContainer();
newBlockUC.Margin = new Thickness(50, 10, 50,10);
Bigwin.Document.Blocks.Add(newBlockUC); //Bigwin is a big richtextbox
rtbeditor.Add(new Rtb());
Rtb newRichTB = new Rtb();
newBlockUC.Child = newRichTB.newRTB;
}
private void LoadRtfFile(string path)
{
FileStream fs = new FileStream(path, FileMode.Open);
FlowDocument doc = XamlReader.Load(fs) as FlowDocument;
Bigwin.Document = doc;
fs.Close();
foreach (var rtb in rtbeditor)
rtb.MouseDoubleClick += req1_MouseDoubleClick; //add event to every richtextbox
}
但是这个解决方案并没有添加双击事件,我认为代码的最后部分有问题。那么,如何向每个创建的richtextbox添加事件呢?您订阅的是
Rtb
上的MouseDoubleClick
,而不是Rtb.newRTB
抱歉,现在您应该看到Rtb了