[英]WPF richTextBox cant identify as UIElement
我有以下代碼將Adorner
附加到Canvas
上的UIElement
上。
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
找到。
selectedElement
將只是null
。
誰能告訴我為什么,請給我個解決辦法?
顯然, 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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.