1
我有一個Windows.Controls.Image,點擊時需要更改它的源代碼並在x毫秒內顯示,然後導航到新頁面。我在更改源代碼後嘗試使用Thread.Sleep(200),但無論我如何強制重新繪製,更改後的源代碼都未顯示,然後當睡眠結束時立即更改頁面。有誰知道我該怎麼做?乾杯!點擊圖片顯示新源後的C#短暫延遲
private void ButtonClicked(object sender, MouseButtonEventArgs e)
{
Image button = (Image)sender;
buttons[button.Name].Source = ImageResizer.ResizeImage(System.Drawing.Image.FromFile(@"D:\buttons\" + button.Name + ".png"), buttonSize);
NavigationService.Navigate(new UpgradeQuiz());
}
你可以開始與節拍處理程序,做了導航呼叫DispatcherTimer(和停止定時器)。出於好奇,爲什麼在WPF應用程序中使用「System.Drawing.Image.FromFile」(來自WinForms),而不是直接從本地文件URI加載WPF BitmapImage? – Clemens
我在很多年前只做了很短的c#編碼,而且大部分都忘記了。我正在做的很多事情是在網絡幫助下學習。我的ImageResizer.ResizeImage函數需要一個System.Drawing.Image,這就是我使用它的原因。代碼在這裏,如果你有興趣:http://pastebin.com/s3VsHkhB當我學到更多的時候,我將回到最佳實踐的重構。 – Falesh
您通常不會在WPF應用程序中使用WinForms類。沒有看過你的ResizeImage方法,我建議將其重寫爲僅使用'System.Windows.Media.Imaging'中的類。 – Clemens