app.xaml で作成したアプリ バーをローカライズしたいのですが、バー アイテムのテキストをバインドしようとすると、 text cannot be empty と表示されます。ローカライズされたアプリ バーの他の例を試しましたが、どれも機能していません。すべてのページで使用できるアプリバー..
質問する
4122 次
3 に答える
7
App.xaml
次のように、いくつかの fakeを使用してグローバル アプリ バーを宣言できますText
。
<Application
x:Class="PhoneApp1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">
<!--Application Resources-->
<Application.Resources>
<local:LocalizedStrings xmlns:local="clr-namespace:PhoneApp1" x:Key="LocalizedStrings"/>
<shell:ApplicationBar x:Key="GlobalAppBar">
<shell:ApplicationBarIconButton Text="TEST" IconUri="/Assets/check.png"/>
</shell:ApplicationBar>
</Application.Resources>
<Application.ApplicationLifetimeObjects>
<!--Required object that handles lifetime events for the application-->
<shell:PhoneApplicationService
Launching="Application_Launching" Closing="Application_Closing"
Activated="Application_Activated" Deactivated="Application_Deactivated"/>
</Application.ApplicationLifetimeObjects>
</Application>
ローカリゼーションApp.xaml.cs
の適用:
var appBar = App.Current.Resources["GlobalAppBar"] as ApplicationBar;
((ApplicationBarIconButton) appBar.Buttons[0]).Text = AppResources.AppBarButtonText;
AppBar
のどこでもグローバルを使用できるようになりApp
ました。 の分離コードで初期化を行うだけですPhoneApplicationPage
。
public MainPage()
{
InitializeComponent();
ApplicationBar = App.Current.Resources["GlobalAppBar"] as ApplicationBar;
}
于 2013-07-15T11:03:20.167 に答える
2
または、デフォルトの VS テンプレートが示唆する方法を使用することもできます。
ページの XAML に次のコードを追加します (最後の要素として表示されますが、それが重要かどうかはわかりません)。
コード ビハインドでプライベート メソッドを作成し、メニュー項目を追加してデータバインドし、コンストラクター (または呼び出している場所
InitializeComponent
)から呼び出します。
XAML:
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" Mode="Minimized" />
</phone:PhoneApplicationPage.ApplicationBar>
C# コード ビハインド:
private void BuildLocalizedApplicationBar()
{
// Create a new menu item with the localized string from AppResources.
ApplicationBarMenuItem appBarMenuItem = new ApplicationBarMenuItem(AppResources.AboutMenuItem);
ApplicationBar.MenuItems.Add(appBarMenuItem);
}
まだ理想的な解決策ではありませんが、そのような些細な理由だけで非ネイティブ コンポーネントを参照するよりはましかもしれません。
問題を解決するための参考資料として役立つ可能性のある公式の参考資料をいくつか示します。
- XAML for Windows Phone を使用してアプリ バーを作成する方法 - http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh394040(v=vs.105).aspx
- Windows Phone 用のコードを使用してアプリ バーを作成する方法 - http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff431786(v=vs.105).aspx
- Windows Phone 用にローカライズされたアプリをビルドする方法 - http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff637520(v=vs.105).aspx
于 2013-11-10T22:23:37.333 に答える