Tôi lưới trên điều khiển đèn bạc của mình, tôi lập trình thêm canvas và trong canvas tôi đang tải và hiển thị Hình ảnh.Làm thế nào để buộc ActualWidth và ActualHeight cập nhật (silverlight)
Tôi cũng đang thêm vòng xoay vào canvas. Vấn đề là theo mặc định, CenterX và CenterY của vòng xoay là phía trên cùng bên trái của khung vẽ. Điều tôi muốn là xoay vòng xảy ra xung quanh trung tâm của khung vẽ.
Để làm điều này, tôi đã cố gắng thiết lập các CenterX và centery của Rotation đến hình ảnh ActualWidth
/2 và ActualHeight
/2, tuy nhiên tôi đã phát hiện ra rằng ActualWidth
và ActualHeight
không luôn được phổ biến, ít nhất là không ngay lập tức . Làm thế nào tôi có thể buộc họ được cập nhật?
Thậm chí sử dụng các sự kiện DownloadProgress vào hình ảnh dường như không đảm bảo ActualWidth và ActualHeight được dân cư, và cũng không sử dụng this.Dispatcher.BeginInvoke() ...
Image imgTest = new Image();
Canvas cnvTest = new Canvas();
Uri uriImage = new Uri("myurl", UriKind.RelativeOrAbsolute);
System.Windows.Media.Imaging.BitmapImage bmpDisplay = new System.Windows.Media.Imaging.BitmapImage(uriImage);
bmpDisplay.DownloadProgress += new EventHandler<System.Windows.Media.Imaging.DownloadProgressEventArgs>(this.GetActualDimensionsAfterDownload);
imgTest.Source = bmpDisplay;
imgTest.Stretch = Stretch.Uniform;
imgTest.HorizontalAlignment = HorizontalAlignment.Center;
imgTest.VerticalAlignment = VerticalAlignment.Center;
cnvTest.Children.Add(imgTest);
this.grdLayout.Children.Add(imgTest);
this.Dispatcher.BeginInvoke(new Action(GetActualDimensions));
Điều đó làm việc cho tôi, cảm ơn! –
Làm việc cho tôi. Cảm ơn. – Jordan