none
有关SemanticZoomLocation类的使用 RRS feed

  • 问题

  • 请问SemanticZoomLocation类中的Item属性表示什么?它的值类型是Object^ ,我该怎么使用它呢?

    我是想通过以上的问题,了解如何得到SemanticZoom控件在in,out视图切换的时候,我可以得到当前用户选择的项的信息,以便做一些处理。不知这个思路是否正确。请高手赐教!谢谢!

    2012年4月10日 2:42

全部回复

  • >> 请问SemanticZoomLocation类中的Item属性表示什么?它的值类型是Object^ ,我该怎么使用它呢?

    你可以做相应的类型转换,如果你知道Item是什么类型的话。不然你可以在调试下,看看具体是什么类型,一般是可以cast成UIElement或者FrameworkElement的。

    >> 如何得到SemanticZoom控件在in,out视图切换的时候

    思路是对的,你可以通过 SemanticZoom.ViewChangeStarted/ViewChangeCompleted events中的参数SemanticZoomViewChangedEventArgs去获得用户当前选择的信息。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年4月11日 10:04
    版主
  • 我参照一个官网的例子代码给语义缩放控件传递数据源,无法正常读取SemanticZoomLocation类中的Item值。

    void ReadPage::OnNavigatedTo(NavigationEventArgs^ e)
    {
    
    	cvs2->Source = safe_cast<PdfData^ >(e->Parameter)->Items;
    	safe_cast<ListViewBase^>(semanticZoom->ZoomedOutView)->ItemsSource = cvs2->View->CollectionGroups;
    }
    
    //
    void ReadPage::semanticZoom_ViewChangeCompleted_1(Platform::Object^ sender, Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs^ e)
    {
    SemanticZoomLocation^ szl = e->SourceItem;
    Object^ oj = 	safe_cast<Object^>(szl->Item);//此处oj显示无法读取内存。
    }
    

    而参照网格应用模板程序使用DefaultViewModel传入数据则可以正常读取SemanticZoomLocation类中的Item值。

    void ReadPage::OnNavigatedTo(NavigationEventArgs^ e)
    {
    
    	DefaultViewModel->Insert("Items",safe_cast<PdfData^ >(e->Parameter)->Items);
    }
    
    //
    void ReadPage::semanticZoom_ViewChangeCompleted_1(Platform::Object^ sender, Windows::UI::Xaml::Controls::SemanticZoomViewChangedEventArgs^ e)
    {
    SemanticZoomLocation^ szl = e->SourceItem;
    Object^ oj = 	safe_cast<Object^>(szl->Item);//此处oj可以正常显示我传入的数据的值。
    }

    其中数据源Items为property Windows::Foundation::Collections::IObservableVector<Platform::Object^>^ Items;

    上述两种方法,ui上都可以正常显示我传入的数据,但是在获取Location值得时候结果却一个正常一个错误,

    两者的区别在哪儿呢?

    2012年4月12日 3:52