我有一個Image
控件,在運行時生成。顯示時呈現正確的大小。但我無法得到這個元素的大小。 Width
和Height
是NaN。 ActualWidth
和ActualHeight
始終爲0.0,並且控件永遠不會觸發事件SizeChanged
事件。我無法獲取UIElement的實際大小
我也產生在運行文本框,我不能讓他們的規模太大。
生成圖像的代碼如下所示。
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);
它包含在畫布中,並且畫布具有高度和寬度。 –
感謝您的回答。 Canvas容器的大小是NaN。當我修復這個問題時,我的問題就解決了。 –
你能告訴我你是如何解決你的問題的,我也有同樣的問題。 –