0

アプリ バー アイコンを備えた Windows ストア アプリがあります。セクション ページ間を移動するためにグローバル アプリ バーを使用しています。アプリバーはカスタム画像を使用して定義され、次のようになります

<AppBar>
        <StackPanel Orientation="Horizontal" x:Name="topAppBar">
            <Button x:Name="homeAppB"  Click="homeAppB_Click" >
                <Button.Content>
                    <StackPanel Orientation="Vertical">
                        <Image Source="Assets/home_default.png" Width="40"/>
                        <TextBlock Text="Home"/>
                    </StackPanel>
                </Button.Content>
            </Button>
     </StackPanel>
    </AppBar>

アイコンをクリックしたら、画像を home_onClick.png に変更する必要があります。これは、どのアプリ バーが現在のページに表示されるように選択されているかを示します。

現在、これはコードの背後にあるコードを使用して実装されています

homeB.Content = Utilities.AppBarIconChange(new Uri("ms-appx:/Assets/home_onClick.png"), "Home");
------------------------------------------------------

public static StackPanel AppBarIconChange(Uri imageUrl, string labelMsg)
    {
        StackPanel panel = new StackPanel();
        Image img = new Image();
        img.Source = new BitmapImage(imageUrl);
        TextBlock txt = new TextBlock();
        txt.Text = labelMsg;
        panel.Children.Add(img);
        panel.Children.Add(txt);

        return panel;
    }

XAML 自体でこの動作を実現する方法はありますか?

4

1 に答える 1

1

XAML で完全に実行できるとは思いません。homeAppB_Click イベント ハンドラーの一部のコードが常に必要になります。

よりエレガントな方法は、URL を保持する ViewModel のプロパティにバインドされた画像のソース プロパティと、このプロパティを変更するだけの homeAppB_Click イベント ハンドラです。

于 2012-10-31T10:14:23.247 に答える