在 WP 8 日历应用程序中,有一个“待办事项”部分,如下所示。很明显,他们在这里使用了 Pivot 控件。
但是,当我们单击“选择”按钮时,我们会看到一个新屏幕,其中包含可以检查以执行“删除”活动的项目列表。
当用户点击“选择”按钮时究竟发生了什么?
- 用户是否导航到新页面(图 2)
或者
- 其他两个枢轴项(日期、议程)是否被禁用并且 UI 已更新以反映可以检查以执行“删除”活动的项目列表。
我想在我的应用程序中实现相同的行为。提前致谢。
在 WP 8 日历应用程序中,有一个“待办事项”部分,如下所示。很明显,他们在这里使用了 Pivot 控件。
但是,当我们单击“选择”按钮时,我们会看到一个新屏幕,其中包含可以检查以执行“删除”活动的项目列表。
当用户点击“选择”按钮时究竟发生了什么?
或者
我想在我的应用程序中实现相同的行为。提前致谢。
@IvanCrojachKaračić 给出了一个很好的答案。
如果您想在运行时动态更改应用栏按钮,您可以这样做:
<phone:PhoneApplicationPage.Resources>
<shell:ApplicationBar x:Key="appbar1"
IsVisible="True">
<shell:ApplicationBarIconButton x:Name="abMain1"
IconUri="/icons/appbar.favs.addto.rest.png"
Text="blabla1" />
</shell:ApplicationBar>
<shell:ApplicationBar x:Key="appbar2"
IsVisible="True">
<shell:ApplicationBarIconButton x:Name="abMain2"
IconUri="/icons/appbar.favs.addto.rest.png"
Text="blabla2" />
<shell:ApplicationBarIconButton x:Name="abMain3"
IconUri="/icons/appbar.cancel.rest.png"
Text="blabla3" />
</shell:ApplicationBar>
</phone:PhoneApplicationPage.Resources>
然后从代码中更改它:
ApplicationBar = (Microsoft.Phone.Shell.ApplicationBar) Resources["appbar1"];
和
ApplicationBar = (Microsoft.Phone.Shell.ApplicationBar) Resources["appbar2"];
您可以使用大量不同的AppBars
. 希望它的帮助。
我会做的就是有这样的东西
<StackPanle>
<Checkbox Visibility={Binding SomeProperty} IsChecked={Binding SomethingElse}/>
<Label Content={Binding SomeOtherProperty}/>
</StackPanel>
通过单击按钮,您只需将 SomeProperty 从 切换Visibility.Visible
到Visibility.Collapsed
,仅此而已。如果SomethingElse
检查了属性中的任何项目,您只需启用其他按钮,如Delete
, Move
,Foo
编辑:我看不出为什么你不能在运行时改变可见性。只需定义明确的标准,这些标准会改变您在视图模型中的可见性属性。
要更改底部的图标,您需要执行以下操作
public partial class YourView
{
private ApplicationBarIconButton _icon;
public YourView()
{
_icon = (ApplicationBarIconButton)ApplicationBar.Buttons[0];
}
public void Foo()
{
if (SomeSavedState)
{
_icon.IconUri = new Uri("somePicture.png", UriKind.Relative);
_icon.Text = "Delete";
}
else
{
_icon.IconUri = new Uri("someOtherPicture.png", UriKind.Relative);
_icon.Text = "Select";
}
}
}
只需使用 LongListMultiSelector 并将属性 IsSelectionEnabled 设置为 true,它是一个工具包元素