J'ai un contrôle Image
, généré en cours d'exécution. Il rend la taille correcte lors de l'affichage. Mais je ne peux pas obtenir la taille de cet élément. Width
et Height
est NaN. ActualWidth
et ActualHeight
est toujours 0.0 et le contrôle ne déclenche jamais l'événement SizeChanged
.Je ne peux pas obtenir ActualSize d'un UIElement
Je suis aussi générer TextBoxes dans le moteur d'exécution et je ne peux pas obtenir la taille d'entre eux aussi.
Le code qui génère l'image est ci-dessous.
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'est contenu dans une toile et toile a la hauteur et la largeur. –
Merci pour votre réponse. La taille du conteneur de Canvas était NaN. Quand je vais corriger cela, mon problème est résolu. –
Pouvez-vous s'il vous plaît dites-moi comment vous avez résolu votre problème, j'ai aussi le même problème. –