[英]Setting Application.Resources through C#
我的應用程序的App.xaml文件中包含此資源。
//App.xaml
<Application.Resources>
<sys:String x:Key="ApplicationTitle">FUEL CONSUMPTION</sys:String>
</Application.Resources>
這非常有效! 但是我試圖通過代碼隱藏文件設置資源,如下所示:
// MainPage.xaml.cs#PhoneApplicationPage_Loaded event
// To get the assembly version number
var nameHelper =
new System.Reflection.AssemblyName
(System.Reflection.Assembly.GetExecutingAssembly().FullName);
// To change the application title based on the assembly version
Application.Current.Resources["ApplicationTitle"] = "FUEL CONSUMPTION - v" +
nameHelper.Version.Major + "." + nameHelper.Version.Minor;
但是每次我嘗試分配它時,都會NotImplentedException
。 這是可以預期的,因為顯然資源的設置器是通過這種方式實現的,但是有沒有解決的辦法?
我想利用這些資源使綁定變得容易。
試試: App.Current.Resources.Add("Key",Value);
我找到了解決問題的辦法。 非常感謝Milan Aggarwal提出的解決方案。
解決方案是將以下代碼放入Application_Launching
事件處理程序中。
var nameHelper = new System.Reflection.AssemblyName
(System.Reflection.Assembly.GetExecutingAssembly().FullName);
if (Application.Current.Resources.Contains("ApplicationTitle"))
Application.Current.Resources.Remove("ApplicationTitle");
Application.Current.Resources.Add("ApplicationTitle",
"FUEL CONSUMPTION - v" + nameHelper.Version.Major + "." +
nameHelper.Version.Minor);
原來,如果綁定的對象已更新,則應用程序標題不會更新。 必須在創建PhoneApplicationPage
對象之前進行資源更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.