0

在 WP 8 日历应用程序中,有一个“待办事项”部分,如下所示。很明显,他们在这里使用了 Pivot 控件。

在此处输入图像描述

但是,当我们单击“选择”按钮时,我们会看到一个新屏幕,其中包含可以检查以执行“删除”活动的项目列表。

在此处输入图像描述

当用户点击“选择”按钮时究竟发生了什么?

  1. 用户是否导航到新页面(图 2)

或者

  1. 其他两个枢轴项(日期、议程)是否被禁用并且 UI 已更新以反映可以检查以执行“删除”活动的项目列表。

我想在我的应用程序中实现相同的行为。提前致谢。

4

3 回答 3

2

@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. 希望它的帮助。

于 2013-04-12T14:41:58.403 回答
1

我会做的就是有这样的东西

<StackPanle>
    <Checkbox Visibility={Binding SomeProperty} IsChecked={Binding SomethingElse}/>
    <Label Content={Binding SomeOtherProperty}/>
</StackPanel>

通过单击按钮,您只需将 SomeProperty 从 切换Visibility.VisibleVisibility.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";
        }
    }
}
于 2013-04-12T07:55:47.110 回答
0

只需使用 LongListMultiSelector 并将属性 IsSelectionEnabled 设置为 true,它是一个工具包元素

于 2013-06-08T15:06:48.667 回答