Je charge une image sur un arrière-plan, et je veux que le canevas argenté contenant tout soit redimensionné à la taille de l'image (ou au maximum ou au minimum que je détermine) quelle que soit la taille de l'image. Donc, je l'ai fait ce qui suit:Comment déterminer la taille d'une image chargée à l'aide de Silverlight 2?
private int ImageMargin = 4;
public Page()
{
InitializeComponent();
BitmapImage bi = new BitmapImage(new Uri("1.jpg", UriKind.Relative));
backgroundImage.Source = bi;
bi.DownloadProgress += new EventHandler<DownloadProgressEventArgs>(bi_DownloadProgress);
backgroundImage.SizeChanged += new SizeChangedEventHandler(backgroundImage_SizeChanged);
}
void bi_DownloadProgress(object sender, DownloadProgressEventArgs e)
{
if (e.Progress == 100)
{
LayoutRoot.Height = backgroundImage.Height + ImageMargin * 2;
LayoutRoot.Width = backgroundImage.Width + ImageMargin * 2;
}
}
L'image correctement charges, mais peu importe où je semble mettre le backgroundImage.Height/Largeur (hors événement .Loaded, événement .SizeChanged [1], en utilisant une frontière [2], etc), il renvoie toujours 0.0 ou NaN. Qu'est-ce que je fais mal?
[1] http://silverlight.net/forums/t/14855.aspx [2] http://silverlight.net/forums/t/90235.aspx
c'est très impressionnant! mais n'est-ce pas exagéré pour ce qui semble être un problème assez simple? Je n'ai même pas vraiment besoin de connaître la taille, en vérité, tout ce dont j'ai vraiment besoin est de dimensionner la toile correctement autour. – aronchick
Avez-vous essayé d'utiliser backgroundImage.ActualWidth/Height au lieu de Width/Height? –
oui, ceux qui n'ont pas aidé j'ai peur. – aronchick