問題在於:我們有一個應用程序在名爲Display的控件中顯示實時圖像。在Display控件的實時圖像上可能會有(可能是交互式的)圖層(Display
控件基本上是一個帶有底部的LiveImageLayer
的網格)。大多數可用的圖層由線圖形組成,不會遮擋圖像。某些圖層由標準的WPF控件(如按鈕或滑塊)組成(使用更改後的模板,以便使用線條圖形進行渲染)。有些圖層甚至直接使用DrawingContext繪製。在不使用效果的情況下在WPF中創建陰影
爲了提高活動噪聲圖像上層圖形的可見性和可讀性,我們試圖將DropShadow
效果分配給圖層。從視覺角度來看,這非常有效。然而,從性能角度來看,這是非常糟糕的。由於ImageLayer的快速更新(高達60Hz),DropShadow
效果被重新計算爲具有圖像更新頻率的所有圖層(即使圖層本身不會更改)。
對於每個圖層,我們都可以手動實現老式陰影(下面的黑色筆和相同圖形,移到右下角)。如果沒有更好的方法,我們會實際做到。
所以,我的問題是:是否有任何自動或半自動的方式來實現這樣的影子?我想在實際圖層下面創建一個移動的矩形,該刷子設置爲實際圖層的視覺刷子。但是,我發現沒有辦法(除了效果)將視覺刷重新着色爲黑色。
任何想法?
你好,謝謝你的回覆。不幸的是,這並不能解決我們的問題 - 我們需要在複雜的幾何圖形上創建陰影(例如,想象圓圈(未填充),尺寸和顯示其直徑的文本)。 – zvrastil