有個wpf專案,從.net framework 4.0剛出來就在用,現在慢慢的系統從win xp到win10了。
升級到.net 8後發現一個怪異的現象,就是當windows按Win+L鎖屏後,某個TableControl裡面的TableItem無法啟用了,就和Disable了一樣的現象。
經過各種嘗試,最終逐步刪程式碼,發現一個子控制元件裡面的依據程式碼刪了就好了。
控制元件的 ControlResource/Style/Setter/Template[Value]裡面有個自己父型別的ControlTemplate,/ViewBox/Grid/AdornerDecorator,
程式碼如下:
<AdornerDecorator CacheMode="{Binding RelativeSource={RelativeSource Self}, Path=(wpf:ShadowAssist.CacheMode)}">
<Ellipse >
</Ellipse>
</AdornerDecorator>
把它的CacheMode刪了就好。
真是神奇。