在 VisualStudio 附加除錯和沒有用 VisualStudio 附加除錯時,對應用程式是有不同的影響,如 VisualStudio 設計器將會在附加除錯 WPF 應用的時候,不斷重繪 WPF 應用的渲染,也就是說,如果你覺得界面視覺效果不對或者對,也許可以甩鍋到 VisualStudio 上
在上一篇博客告訴大家,在 WPF 中更改 DrawingVisual 的 RenderOpen 用到的物件的內容將持續影響渲染效果,詳細請看 WPF 更改 DrawingVisual 的 RenderOpen 用到的物件的內容將持續影響渲染效果
通過以下簡單的邏輯可以實作一個矩形影片的功能
private async void SetTranslateTransform(TranslateTransform translateTransform)
{
while (true)
{
translateTransform.X++;
if (translateTransform.X > 700)
{
translateTransform.X = 0;
}
await Task.Delay(TimeSpan.FromMilliseconds(10));
}
}
在 VisualStudio 附加除錯下的視覺效果如下圖,可以播放影片

然而有趣的是,在 VisualStudio 不附加除錯的時候,可以發現界面不動了,如下圖,下圖非靜止圖片哦

如果在不附加除錯時,有界面重繪時,那么依然還會影片,如上圖,在滑鼠在按鈕上時,此時按鈕界面需要重繪,于是觸發了渲染,在觸發渲染時,在收集的時候,重新拿到了 TranslateTransform 的值,矩形的渲染坐標更改
通過上面的例子可以看到,在附加 VisualStudio 除錯時,界面將不斷觸發渲染,有時的影片效果就是在附加 VisualStudio 除錯時看起來才是對的,或者看起來不對,因此在撰寫效果,需要在干掉 VisualStudio 除錯看一下效果
本文所有代碼放在 github 和 gitee 歡迎小伙伴訪問
可以通過如下方式獲取本文的源代碼,先創建一個空檔案夾,接著使用命令列 cd 命令進入此空檔案夾,在命令列里面輸入以下代碼,即可獲取到本文的代碼
git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin 2af349867a6e6da136e5bc068357877f38788216
以上使用的是 gitee 的源,如果 gitee 不能訪問,請替換為 github 的源
git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
獲取代碼之后,進入 KebelrafoRalneanarjeargi 檔案夾
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/294337.html
標籤:.NET技术
