0

我有一个带有应用栏图标的 Windows 应用商店应用。我正在使用全局 App Bar 来浏览部分页面。App Bar 是使用自定义图像定义的,它看起来像

<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;这是为了指示选择哪个 App Bar 登陆当前页面。

目前,这是使用代码背后的代码实现的,例如

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 事件处理程序中的一些代码总是需要的。

一种更优雅的方法是将图像的源属性绑定到 ViewModel 上的属性,该属性包含 URL,并且在 homeAppB_Click 事件处理程序中只是更改此属性。

于 2012-10-31T10:14:23.247 回答