<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.silverlight.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Report a Silverlight Bug</title><link>http://forums.silverlight.net/forums/28.aspx</link><description>Found a bug in Silverlight? Use this forum to describe the bug and the code or steps to reproduce it.</description><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20416.853)</generator><item><title>Re: Cannot get image dimensions with Image control!</title><link>http://forums.silverlight.net/forums/thread/49306.aspx</link><pubDate>Fri, 25 Apr 2008 17:55:35 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:49306</guid><dc:creator>Wilfred Pinto</dc:creator><slash:comments>0</slash:comments><comments>http://forums.silverlight.net/forums/thread/49306.aspx</comments><wfw:commentRss>http://forums.silverlight.net/forums/commentrss.aspx?SectionID=28&amp;PostID=49306</wfw:commentRss><description>&lt;p&gt;Ok... found a nice workaround, so I thought I&amp;#39;d post it here. It seems to work well but if anyone discovers any issue please post a follow up to this post.&lt;/p&gt;

&lt;p&gt;Handle the Image.SizeChanged event but take the image dimensions like this&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyImage.SizeChanged += (sender, e) =&amp;gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.PreviousSize.Width == 0 &amp;amp;&amp;amp; e.PreviousSize.Height == 0 &amp;amp;&amp;amp; e.NewSize != e.PreviousSize) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // &lt;b&gt;e.NewSize&lt;/b&gt; contains the size of the image&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Wilfred Pinto&lt;br /&gt;&lt;a href="http://projectsilverlight.blogspot.com"&gt;http://projectsilverlight.blogspot.com&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Cannot get image dimensions with Image control!</title><link>http://forums.silverlight.net/forums/thread/49104.aspx</link><pubDate>Thu, 24 Apr 2008 21:10:46 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:49104</guid><dc:creator>Wilfred Pinto</dc:creator><slash:comments>0</slash:comments><comments>http://forums.silverlight.net/forums/thread/49104.aspx</comments><wfw:commentRss>http://forums.silverlight.net/forums/commentrss.aspx?SectionID=28&amp;PostID=49104</wfw:commentRss><description>&lt;p&gt;A Kludgey workaround&lt;/p&gt;&lt;p&gt;internal void DrawBorderAroundImage()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DispatcherTimer dispatcherTimer = new DispatcherTimer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 100);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dispatcherTimer.Tick += (sender, e) =&amp;gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ((DispatcherTimer)sender).Stop();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HtmlPage.Window.Alert(MyImage.Height.ToString() + &amp;quot;:&amp;quot; + MyImage.MaxWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualHeight.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.RenderSize.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This may / may not work since 100 msec is an approximation. But it illustrates the problem! &lt;/p&gt;&lt;p&gt;&lt;b&gt;Please fix it soon.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Thanks&lt;/p&gt;&lt;p&gt;Wilfred Pinto&lt;br /&gt;&lt;a href="http://projectsilverlight.blogspot.com"&gt;http://projectsilverlight.blogspot.com&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Cannot get image dimensions with Image control!</title><link>http://forums.silverlight.net/forums/thread/49085.aspx</link><pubDate>Thu, 24 Apr 2008 19:54:16 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:49085</guid><dc:creator>Wilfred Pinto</dc:creator><slash:comments>0</slash:comments><comments>http://forums.silverlight.net/forums/thread/49085.aspx</comments><wfw:commentRss>http://forums.silverlight.net/forums/commentrss.aspx?SectionID=28&amp;PostID=49085</wfw:commentRss><description>&lt;p&gt;This has been covered before but I am not sure if an official bug has been reported. I need this functionality and I am hoping it will be fixed by the next release (Beta 2?)!&lt;/p&gt;&lt;p&gt;&lt;u&gt;The Xaml:&lt;/u&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;UserControl x:Class=&amp;quot;Test.Page&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns=&amp;quot;http://schemas.microsoft.com/client/2007&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width=&amp;quot;100&amp;quot; Height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid x:Name=&amp;quot;LayoutRoot&amp;quot; Background=&amp;quot;Black&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Image x:Name=&amp;quot;MyImage&amp;quot; Source=&amp;quot;/images/yellowlily1.jpg&amp;quot; MaxWidth=&amp;quot;300&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;br /&gt;&amp;lt;/UserControl&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;u&gt;The code beside:&lt;/u&gt;&lt;/p&gt;&lt;p&gt;public Page()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyImage.MouseLeftButtonDown += (sender, e) =&amp;gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HtmlPage.Window.Alert(&amp;quot;MouseLeftButtonDown&amp;quot; + &amp;quot;: &amp;quot; + MyImage.Height.ToString() + &amp;quot;:&amp;quot; + MyImage.MaxWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualHeight.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.RenderSize.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyImage.Loaded += (sender, e) =&amp;gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HtmlPage.Window.Alert(&amp;quot;Loaded&amp;quot; + &amp;quot;: &amp;quot; + MyImage.Height.ToString() + &amp;quot;:&amp;quot; + MyImage.MaxWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualHeight.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.RenderSize.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;u&gt;The result:&lt;/u&gt;&lt;/p&gt;&lt;p&gt;Loaded: &lt;b&gt;Nan:300:0:0:0,0&lt;/b&gt; &lt;br /&gt;MouseLeftButtonDown: &lt;b&gt;66:300:66:88:88,66&lt;/b&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;There doesn&amp;#39;t seem to be a way of getting the image dimensions on image load. &lt;i&gt;Occasionally &lt;/i&gt;the Loaded event will give the right dimensions.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;I also tried BitmapImage class -&lt;/p&gt;&lt;p&gt;&lt;u&gt;The Xaml:&lt;/u&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;UserControl x:Class=&amp;quot;Test.Page&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns=&amp;quot;http://schemas.microsoft.com/client/2007&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Width=&amp;quot;100&amp;quot; Height=&amp;quot;300&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid x:Name=&amp;quot;LayoutRoot&amp;quot; Background=&amp;quot;Black&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Image x:Name=&amp;quot;MyImage&amp;quot; MaxWidth=&amp;quot;300&amp;quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;br /&gt;&amp;lt;/UserControl&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;u&gt;The code beside:&lt;/u&gt;&lt;/p&gt;&lt;p&gt;public Page()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BitmapImage bi = new BitmapImage();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bi.UriSource = new Uri(&amp;quot;/images/yellowlily1.jpg&amp;quot;, UriKind.Relative);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bi.DownloadProgress += (sender, e) =&amp;gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(e.Progress == 1) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HtmlPage.Window.Alert(&amp;quot;DownloadProgress:&amp;quot; + &amp;quot;: &amp;quot; + MyImage.Height.ToString() + &amp;quot;:&amp;quot; + MyImage.MaxWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualHeight.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.RenderSize.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyImage.MouseLeftButtonDown += (sender, e) =&amp;gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HtmlPage.Window.Alert(&amp;quot;MouseLeftButtonDown&amp;quot; + &amp;quot;: &amp;quot; + MyImage.Height.ToString() + &amp;quot;:&amp;quot; + MyImage.MaxWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualHeight.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.RenderSize.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyImage.Loaded += (sender, e) =&amp;gt; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; HtmlPage.Window.Alert(&amp;quot;Loaded&amp;quot; + &amp;quot;: &amp;quot; + MyImage.Height.ToString() + &amp;quot;:&amp;quot; + MyImage.MaxWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualHeight.ToString() + &amp;quot;:&amp;quot; + MyImage.ActualWidth.ToString() + &amp;quot;:&amp;quot; + MyImage.RenderSize.ToString());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MyImage.Source = bi;&lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;u&gt;The result:&lt;/u&gt;&lt;/p&gt;&lt;p&gt;DownloadProgress: &lt;b&gt;Nan:300:0:0:0,0&lt;/b&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;b&gt;What is weird here is that the downloadprogress event is called 3 times for e.Progress == 1&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;All this is executing on the local machine (no server).&lt;/p&gt;&lt;p&gt;----------&lt;/p&gt;&lt;p&gt;All I want to do is put a simple border around the image. It doesn&amp;#39;t seem possible since I cannot get the dimensions of the image. If there is a workaround for this, I would love to hear it! Note that I cannot specify the dimensions for the image or grid control since I want the image control to intelligently render the image.&lt;br /&gt;&lt;/p&gt;</description></item></channel></rss>