0

WP7 アプリケーションのコードでアイコンとアイコンの動作を変更したいと考えています。MainPageコンストラクターとで試しましたMainPage_Loadedが、 ApplicationBar ( x:Name) は常に null であると表示されます。

同じページと異なる状態を使用しているため、どうすれば変更できますか?

4

3 に答える 3

1

残念ながら、現時点ではアプリケーション バーのボタンにコードからアクセスすることはできません。そのタスクを達成するために、公式の Mircosoft Training Kit for WP7 の例の 1 つに従いました。XAML といくつかのコードを次に示します。

<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar>
        <shell:ApplicationBarIconButton IconUri="/icons/appbar.pin.png" IsEnabled="True" Text="Anpinnen" x:Name="appPinPage" Click="appPinPage_Click" />
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

ApplicationBar は PhoneApplicationPage のプロパティであるため、PhoneApplicationPage の ApplicationBar プロパティに割り当てる ApplicationBar オブジェクトに明示的な名前を付ける必要はありません。上記の xaml コードでボタンの画像を変更する例を次に示します。このコードは、PhoneApplicationPage のオーバーライドされた OnNavigatedTo() メソッドで呼び出されます。

        if (this.ViewModel.IsPinned())
        {
            ((ApplicationBarIconButton)this.ApplicationBar.Buttons[0]).Text = Resource1.txtUnpin;
            ((ApplicationBarIconButton)this.ApplicationBar.Buttons[0]).IconUri = new Uri("/icons/appbar.unpin.png", UriKind.Relative);
        }
        else
        {
            ((ApplicationBarIconButton)this.ApplicationBar.Buttons[0]).Text = Resource1.txtPin;
            ((ApplicationBarIconButton)this.ApplicationBar.Buttons[0]).IconUri = new Uri("/icons/appbar.pin.png", UriKind.Relative);
        }
于 2012-04-22T11:14:44.580 に答える
1

x:Nameプロパティを削除して、Page.ApplicationBarを使用してアクセスしてみてください。

于 2012-04-22T10:36:29.503 に答える
1

残念ながら、ApplicationBarは Silverlight コントロールではありません ( UIElementから継承されません)。つまり、ボタンを使用してアクセスすることはできませんが、 ApplicationBarプロパティx:Nameを使用してページ内でアクセスできます。

このサンプルをチェックして、ページの分離コードから ApplicationBar を作成してアクセスする方法を確認してください。

MVVM アーキテクチャを使用する場合は、Cimbalino Windows Phone Toolkitの ApplicationBarBehaviour を確認する必要があります。これにより、多くの作業を節約できます!!!

于 2012-04-22T11:47:47.020 に答える