none
hi,谁能帮我看一下SemanticZoom 控件缩小视图回退不能定位到分类的位置 RRS feed

  • 问题

  • 我的数据结构是这样的:

    放大效果:


    缩小视图回退的时候,不能定位到准确的分类位置,该怎么办,求助!

    比如:点击“战争” ->回退到“战争”分类

    点击最后一项“其他” ->回退到"其他"分类。(“其他”分类 在第二个屏幕,转动滚轮才能看到)





    2012年9月10日 4:21

答案

  • 你可以看看是不是你ZoomedOutView的ItemsSource设置的有问题,这个ItemsSource一定是和ZoomedInView是一个source,你可以参考下SDK的sample:

    List<GroupInfoList<object>> dataLetter = _storeData.GetGroupsByLetter();
    cvs2.Source = dataLetter;
    (semanticZoom.ZoomedOutView as ListViewBase).ItemsSource = cvs2.View.CollectionGroups;

    http://code.msdn.microsoft.com/windowsapps/GroupedGridView-77c59e8e

    如果还是自己解决不了,我建议你分享一下你的后台代码,这杨我能在我这边重现


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年9月10日 10:42
  • hello,我搞定了。问题的原因是 InView 我没有关联 OutView 的资源。

    我解决的办法是:

           //给 SemanticZoom 添加 ViewChangeStarted="ViewChangeStarted"事件
        <SemanticZoom x:Name="semanticZoom"  Grid.Row="1" ViewChangeStarted="ViewChangeStarted">

    在处理事件中,判断是否是缩小视图:

    ViewChangeStarted(Platform::Object^ sender, Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs^ e)
    {
    if (!semanticZoom->IsZoomedInViewActive)  //如果是缩小视图
    {

    //这一行代码写的很诡异,从C#转过来的,只好这么暂时照抄一下。。。

    (safe_cast<ListViewBase^>(semanticZoom->ZoomedOutView))->ItemsSource = groupedItemsViewSource->View->CollectionGroups;
    }


    }


    2012年9月11日 7:33

全部回复

  • 缩小效果:

    2012年9月10日 7:07
  • 你可以看看是不是你ZoomedOutView的ItemsSource设置的有问题,这个ItemsSource一定是和ZoomedInView是一个source,你可以参考下SDK的sample:

    List<GroupInfoList<object>> dataLetter = _storeData.GetGroupsByLetter();
    cvs2.Source = dataLetter;
    (semanticZoom.ZoomedOutView as ListViewBase).ItemsSource = cvs2.View.CollectionGroups;

    http://code.msdn.microsoft.com/windowsapps/GroupedGridView-77c59e8e

    如果还是自己解决不了,我建议你分享一下你的后台代码,这杨我能在我这边重现


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年9月10日 10:42
  • 我想问题是: Inview 的资源  和 outView的资源没绑定到一块去,

    所以导致了单独显示

    C#里有这样一句:

    List<GroupInfoList<object>> dataLetter = _storeData.GetGroupsByLetter(); cvs2.Source = dataLetter; (semanticZoom.ZoomedOutView as ListViewBase).ItemsSource = cvs2.View.CollectionGroups;

    在C++里我不知道怎么写呀。。。

    2012年9月11日 6:13
  • hello,我搞定了。问题的原因是 InView 我没有关联 OutView 的资源。

    我解决的办法是:

           //给 SemanticZoom 添加 ViewChangeStarted="ViewChangeStarted"事件
        <SemanticZoom x:Name="semanticZoom"  Grid.Row="1" ViewChangeStarted="ViewChangeStarted">

    在处理事件中,判断是否是缩小视图:

    ViewChangeStarted(Platform::Object^ sender, Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs^ e)
    {
    if (!semanticZoom->IsZoomedInViewActive)  //如果是缩小视图
    {

    //这一行代码写的很诡异,从C#转过来的,只好这么暂时照抄一下。。。

    (safe_cast<ListViewBase^>(semanticZoom->ZoomedOutView))->ItemsSource = groupedItemsViewSource->View->CollectionGroups;
    }


    }


    2012年9月11日 7:33