WPF richTextBox无法识别为UIElement
本文关键字:UIElement 识别 richTextBox WPF | 更新日期: 2023-09-27 18:24:07
我有以下代码,它将Adorner
s附加到Canvas
上的UIElement
s。
private void slideCanvas_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
{
selected = false;
if (selectedElement != null)
{
aLayer.Remove(aLayer.GetAdorners(selectedElement)[0]);
selectedElement = null;
}
}
if (e.Source != slideCanvas)
{
_isDown = true;
_startPoint = e.GetPosition(slideCanvas);
selectedElement = e.Source as UIElement;
_originalLeft = Canvas.GetLeft(selectedElement);
_originalTop = Canvas.GetTop(selectedElement);
aLayer = AdornerLayer.GetAdornerLayer(selectedElement);
aLayer.Add(new ResizingAdorner(selectedElement));
selected = true;
e.Handled = true;
}
}
然而,由于某种原因,当我在运行时单击RichTextBox
时,程序崩溃,因为e.Source
找不到RichTextBox
作为UIElement
。
CCD_ 8将只是CCD_ 9。
有人能告诉我为什么吗?请给我一份工作?
显然e.Source
是您单击的RichTextBox的Document
。它是一个FlowDocument
,不是从UIElement
派生的。
但是,您可以通过FlowDocument的Parent
属性访问RichTextBox。
if (e.Source is FlowDocument)
{
selectedElement = ((FlowDocument)e.Source).Parent as UIElement;
}
else
{
selectedElement = e.Source as UIElement;
}