WPF RichTextBox中的控件没有事件
我正在使用WPF,并且在RichTextBox控件中有一个表。我需要得到表格单元格的背景颜色来改变它的焦点。我的问题是无法为TableCell触发GotFocus或任何其他事件WPF RichTextBox中的控件没有事件,wpf,focus,richtextbox,Wpf,Focus,Richtextbox,我正在使用WPF,并且在RichTextBox控件中有一个表。我需要得到表格单元格的背景颜色来改变它的焦点。我的问题是无法为TableCell触发GotFocus或任何其他事件 <RichTextBox> <FlowDocument> <Table> <Table.Columns> <TableColumn /> </Table.Col
<RichTextBox>
<FlowDocument>
<Table>
<Table.Columns>
<TableColumn />
</Table.Columns>
<TableRowGroup>
<TableRow>
<TableCell GotFocus="SelectionCell_GotFocus">
<Paragraph>1</Paragraph>
</TableCell>
</TableRow>
</TableRowGroup>
</Table>
</FlowDocument>
</RichTextBox>
1.
下图显示RichTextBox控件中的表格。我想能够做的是在用户在表格单元格之间移动时更改背景
编辑:经过进一步调查,问题并不局限于RichTextBox中的表,RichTextBox中的任何控件似乎都无法生成事件。我在它里面放了一个按钮,并没有让它触发点击事件。看起来RichTextBox屏蔽了所有事件,希望有办法解除屏蔽。一半的答案是将RichTextBox上的IsDocumentEnabled属性设置为true。允许根据启用其中的控件。不幸的是,它仍然没有触发我需要的事件,即TableCell上的GotFocus,尽管可以通过在单元格中放置一个按钮并单击它来触发事件。这会使GotFocus事件在UI树上冒泡到TableCell。我不希望每个单元格都有一个按钮,所以是时候寻找替代方案了
<RichTextBox IsDocumentEnabled="True">
<FlowDocument>
<Table>
<Table.Columns>
<TableColumn />
</Table.Columns>
<TableRowGroup>
<TableRow>
<TableCell GotFocus="SelectionCell_GotFocus">
<BlockUIContainer>
<Canvas>
<Button Click="Button_Click">
Click
</Button>
</Canvas>
</BlockUIContainer>
</TableCell>
</TableRow>
</TableRowGroup>
</Table>
</FlowDocument>
</RichTextBox>
点击
更新
我确实发现以下(在:)已尝试过,并且有效:
ContentElement是段落的基类之一,顺便说一句,它是文档中几乎所有内容的基类,它定义了您要查找的属性和事件
编码
void MyCode()
{
Paragraph p = new Paragraph();
p.MouseEnter += p_MouseEnter;
}
void p_MouseEnter(object sender, EventArgs e)
{
Paragraph p = (Paragraph)sender;
p.Background = Brushes.Red;
}
**In Markup**
<Paragraph MouseEnter="p_MouseEnter" />
**You can also trigger on properties like IsMouseOver in styles**
void MyCode()
{
第p段=新的第()段;
p、 鼠标指针+=p_鼠标指针;
}
void p_MouseEnter(对象发送方,事件参数e)
{
第p段=(第)段发送者;
p、 背景=画笔。红色;
}
**加价**
**您还可以在样式中的IsMouseOver等属性上触发**