簡體   English   中英

WPF richTextBox無法識別為UIElement

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM