一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
本文將和大家介紹在什麼情況下 WPF 將會在調用 VisualTreeHelper.GetDescendantBounds 方法時,返回一個無窮大的範圍尺寸
在 WPF 的容器控制項的裡層元素的 RenderTransform 包含 NaN 將會導致對上層容器調用 VisualTreeHelper.GetDescendantBounds 返回無窮大
返回的矩形範圍是 -∞,-∞,∞,∞ 的正負無窮大
復現代碼如下
<Grid x:Name="Grid">
<Border x:Name="Border">
<Grid>
<Grid.RenderTransform>
<TranslateTransform X="NaN"></TranslateTransform>
</Grid.RenderTransform>
</Grid>
</Border>
</Grid>
此時對以上代碼的 Grid 或 Border 控制項調用 VisualTreeHelper.GetDescendantBounds 返回的 Rect 就是一個包含正負無窮大的範圍,如以下代碼
public MainWindow()
{
InitializeComponent();
Loaded += MainWindow_Loaded;
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
var rect = VisualTreeHelper.GetDescendantBounds(Grid);
}
以上代碼裡面存在 RenderTransform 的 TranslateTransform 的 X 或 Y 屬性包含了 NaN 值,從邏輯上講就是具備無窮大的描述範圍
可以通過如下方式獲取本文的源代碼,先創建一個空文件夾,接著使用命令行 cd 命令進入此空文件夾,在命令行裡面輸入以下代碼,即可獲取到本文的代碼
git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin b50873dca1d5f4d118df253f1e7feb326ec1f87e
以上使用的是 gitee 的源,如果 gitee 不能訪問,請替換為 github 的源。請在命令行繼續輸入以下代碼
git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin b50873dca1d5f4d118df253f1e7feb326ec1f87e
獲取代碼之後,進入 BeewhearfulidiLodiwena 文件夾
博客園博客只做備份,博客發佈就不再更新,如果想看最新博客,請訪問 https://blog.lindexi.com/
如圖片看不見,請在瀏覽器開啟不安全http內容相容
本作品採用知識共用署名-非商業性使用-相同方式共用 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發佈,但務必保留文章署名[林德熙](https://www.cnblogs.com/lindexi)(包含鏈接:https://www.cnblogs.com/lindexi ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請與我[聯繫](mailto:[email protected])。