Windows 8 Windows应用商店应用程序&x2013;单击时应用程序栏图标更改事件
我有一个带有应用程序栏图标的Windows应用商店应用程序。我正在使用一个全局应用程序栏来浏览各部分页面。应用程序栏是使用自定义图像定义的,看起来像Windows 8 Windows应用商店应用程序&x2013;单击时应用程序栏图标更改事件,windows-8,microsoft-metro,Windows 8,Microsoft Metro,我有一个带有应用程序栏图标的Windows应用商店应用程序。我正在使用一个全局应用程序栏来浏览各部分页面。应用程序栏是使用自定义图像定义的,看起来像 <AppBar> <StackPanel Orientation="Horizontal" x:Name="topAppBar"> <Button x:Name="homeAppB" Click="homeAppB_Click" > <
<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>
有没有办法在XAML中实现这种行为 我不认为您可以完全在XAML中完成,homeAppB_Click事件处理程序中的一些代码总是需要的 更优雅的方法是将图像的源属性绑定到ViewModel上保存URL的属性,并在homeAppB_Click事件处理程序中仅更改此属性
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;
}