【发布时间】:2011-09-18 12:10:44
【问题描述】:
我有一个Image 控件,在运行时生成。它在显示时呈现正确的大小。但我无法获得该元素的大小。 Width 和 Height 是 NaN。 ActualWidth 和 ActualHeight 始终为 0.0,并且控件永远不会触发 SizeChanged 事件。
我也在运行时生成文本框,我也无法获取它们的大小。
生成图片的代码如下。
ExtendedImage image = new ExtendedImage();
image.Name = "element" + item.Id;
if (item.Text.ToUpperInvariant().EndsWith(".GIF"))
{
var gif = BookReader.Imaging.GIFDecoder.Decode(Application.GetResourceStream(new Uri("Files/Books/" + item.BookId + "/" + item.Text, UriKind.Relative)).Stream);
image.Source = gif.Frames[0].Image;
}
else
{
var img = new BitmapImage(new Uri("/Files/Books/" + item.BookId + "/" + item.Text, UriKind.Relative));
image.Source = img;
}
image.SetValue(Canvas.LeftProperty, (double)item.LocationX);
image.SetValue(Canvas.TopProperty, (double)(Application.Current.Host.Content.ActualHeight - item.LocationY));
image.SizeChanged += (o, e) =>
{
var sender = o as ExtendedImage;
image.SetValue(UIElement.RenderTransformOriginProperty, new Point(0.5, 0.5));
};
image.InvalidateMeasure();
if (!item.Visible)
{
image.Visibility = System.Windows.Visibility.Collapsed;
}
ContentPanel.Children.Add(image);
【问题讨论】:
标签: c# silverlight windows-phone-7 size uielement