1、在 xaml 中,当一个元素刚被创建时,不能得到它所需要的占用的宽和高,因为此时元素还没有调用 UIElement. Measure(Size availableSize) 方法,该方法是在构图线程中计算元素的大小的 ,方法的具体描述 :
// 更新 UIElement 的 DesiredSize。实现其布局子级的自定义布局的对象通常从自己的 MeasureOverride 实现调用此方法以形成递归布局更新。 // availableSize: 父对象可以为子对象分配的可用空间。子对象可以请求大于可用空间的空间;如果该特定容器中允许滚动或其他调整大小行为,则提供的大小可以适应此空间。 public void Measure(Size availableSize);
在创建元素时就想获得其大小的方法:
TextBlock txt = new TextBlock { Text = "windows phone 手机", FontSize = 40 }; //手动调用该元素的方法 //public const double PositiveInfinity = 1.0 / 0.0; //double.PositiveInfinity : 代表的是正无穷大。这个数是一个常数 txt.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); Size txtSize = txt.DesiredSize; //结果:(370.0,48.0) txtSize = new Size(txt.ActualWidth, txt.ActualHeight); //结果:(370.0,48.0) txtSize = new Size(txt.Width, txt.Height);// 结果 :(NaN, NaN)
2、今天在使用 WebView 导航到本地的 html 文件时,总是不能正确加载, 使用的 方法是 :
MyIE.Navigate(new Uri("ms-appx:///Assets/default.html"));
正确的方法是:
MyIE.Navigate(new Uri("ms-appx-web:///Assets/default.html"));