请教一个问题,我想把Uri做成StaticResource,用在ApplicationBar上做IconUri,不知道怎么做哦,或者有别的方法可以把IconUri定义单独拿出来?谢谢。请参照http://stackoverflow.com/questions/8457696/wp7-uri-as-staticresource
ApplicationBar无法实现数据绑定,所以出现参照问题的bug。
我不清楚您的具体需求是什么,是不是想实现动态变化的ApplicationBar。如果是下面的代码可以实现变换不同的ApplicationBar。下面的代码实现的是在Pivot中实现不同的ApplicationBar。
将application bar定义到资源文件中:
<phone:PhoneApplicationPage.Resources><br/><shell:ApplicationBar x:Key="MainAppBar" IsVisible="True" IsMenuEnabled="True"> <shell:ApplicationBar.MenuItems> <shell:ApplicationBarMenuItem x:Name="menuAbout" Text="{StaticResource Appbar_About}" Click="menuAbout_Click"/> </shell:ApplicationBar.MenuItems> <shell:ApplicationBarIconButton x:Name="btnSettings" IconUri="/icons/appbar.feature.settings.rest.png" Text="{StaticResource Appbar_Settings}" Click="btnSettings_Click" /> <shell:ApplicationBarIconButton x:Name="btnHelp" IconUri="/icons/appbar.questionmark.rest.png" Text="{StaticResource Appbar_Help}" Click="btnHelp_Click"/> </shell:ApplicationBar> <shell:ApplicationBar x:Key="FavoritesAppBar" IsVisible="True" IsMenuEnabled="True"> <shell:ApplicationBarIconButton x:Name="btnPlay" IconUri="/icons/appbar.transport.play.rest.png" Text="{StaticResource Appbar_Play}" Click="btnPlay_Click" /> <shell:ApplicationBarIconButton x:Name="btnFavLoad" IconUri="/icons/appbar.folder.rest.png" Text="{StaticResource Appbar_Load}" Click="btnFavLoad_Click" /> <shell:ApplicationBarIconButton x:Name="btnFavRecord" IconUri="/icons/appbar.feature.video.rest.png" Text="{StaticResource Appbar_VictoryRecord}" Click="btnFavRecord_Click" /> <shell:ApplicationBarIconButton x:Name="btnDelete" IconUri="/icons/appbar.delete.rest.png" Text="{StaticResource Appbar_Delete}" Click="btnDelete_Click" /> </shell:ApplicationBar> <shell:ApplicationBar x:Key="FinishedOrUnfinishedAppBar" IsVisible="True" IsMenuEnabled="True"> <shell:ApplicationBarIconButton x:Name="btnPlay2" IconUri="/icons/appbar.transport.play.rest.png" Text="{StaticResource Appbar_Play}" Click="btnPlay_Click" /> </shell:ApplicationBar> </phone:PhoneApplicationPage.Resources>
然后在代码中定义所使用的application bar
private void pivotMain_SelectionChanged(object sender, SelectionChangedEventArgs e)
{ switch (((Pivot)sender).SelectedIndex) { case 0: ApplicationBar = ((ApplicationBar)this.Resources["MainAppBar"]); break; case 1: ApplicationBar = ((ApplicationBar)this.Resources["FavoritesAppBar"]); break; case 2: ApplicationBar = ((ApplicationBar)this.Resources["FinishedOrUnfinishedAppBar"]); break; default: break; } }
我的需求是想把ApplicationBar上Button的IconUri定义到xaml中,然后在用StaticResource的形式加载到Button上,而不是Binding。遇到的问题就是如何在xaml中定义Uri呢?
不知唉
呵呵
@刘沙沙: 嘻