【发布时间】:2013-07-29 13:34:19
【问题描述】:
我有一个这样的流文档:
var mcFlowDoc = new FlowDocument();
var para = new Paragraph();
para.Inlines.Add(textBlock1);
para.Inlines.Add(textBlock2);
para.Inlines.Add(textBlock3);
mcFlowDoc.Blocks.Add(para);
richTextBox1.Document = mcFlowDoc;
我需要一个事件来触发鼠标点击文本块:
<RichTextBox Margin="10,10,230,12" Name="richTextBox1" FontFamily="Simplified Arabic" FontSize="16" IsReadOnly="True" IsReadOnlyCaretVisible="False" ForceCursor="False" FlowDirection="RightToLeft" VerticalScrollBarVisibility="Auto">
<RichTextBox.Resources>
<Style TargetType="Run">
<EventSetter Event="MouseLeftButtonDown" Handler="Run_Click" />
</Style>
<Style TargetType="TextBlock">
<EventSetter Event="MouseLeftButtonDown" Handler="TextBlock_Click" />
</Style>
</RichTextBox.Resources>
</RichTextBox>
void TextBlock_Click(object sender, MouseButtonEventArgs e)
{
TextBlock tb = sender as TextBlock;
}
Run 的事件处理程序被调用并正常工作 (Changing inline in flowdocument),但 TextBlock 的事件处理程序不是。
我做错了什么? 谢谢
【问题讨论】:
-
您将 FlowDocument 分配给richTextBox。你确定richTextBox1 也有带有TextBlocks 的FlowDocument 吗?
-
是的,这就是我使用的:textBlock1 = new TextBlock(run1));
-
我的意思是你可能有两个 RichTextBox。一个名为richTextBox,带有FlowDocument,另一个在XAML 中声明,名为richTextBox1,没有内容但有事件处理。
-
对不起,都是richTextBox1。我刚刚编辑了问题。
标签: c# wpf richtextbox textblock