SemanticZoom中的UWP ScrollingToView

SemanticZoom中的UWP ScrollingToView,uwp,Uwp,可以在SemanticZoom中滚动到视图中吗?SemanticZoom没有ScrollIntoView方法(与ListView相反)。因此,当语义视图被放大时,我无法放大到组元素。我试图通过如下方式恢复ScrollViewer来实现此目的: var root = VisualTreeHelper.GetChild(semanticView, 0); var scrollviewer = VisualTreeHelper.GetChild(root, 0) as ScrollViewer; 。

可以在SemanticZoom中滚动到视图中吗?SemanticZoom没有ScrollIntoView方法(与ListView相反)。因此,当语义视图被放大时,我无法放大到组元素。我试图通过如下方式恢复ScrollViewer来实现此目的:

var root = VisualTreeHelper.GetChild(semanticView, 0);
var scrollviewer = VisualTreeHelper.GetChild(root, 0) as ScrollViewer;

。。。但是我无法获取目标元素的UIElement。

要同步
ZoomedInView
ZoomedOutView
,您可以使用下面的代码

private void SemanticZoom_ViewChangeStarted(object sender, SemanticZoomViewChangedEventArgs e)
{
    if (e.IsSourceZoomedInView == false)
    {
        e.DestinationItem.Item = e.SourceItem.Item;
    }
}
var zoomLoc = new SemanticZoomLocation() { Item = /* Item to navigate */};
mySemanticZoom.ZoomedInView.MakeVisible(zoomLoc);
如果您想在其他时间滚动,请使用下面的代码

private void SemanticZoom_ViewChangeStarted(object sender, SemanticZoomViewChangedEventArgs e)
{
    if (e.IsSourceZoomedInView == false)
    {
        e.DestinationItem.Item = e.SourceItem.Item;
    }
}
var zoomLoc = new SemanticZoomLocation() { Item = /* Item to navigate */};
mySemanticZoom.ZoomedInView.MakeVisible(zoomLoc);

我终于成功地恢复了ZoomedInView中包含的gridview。事实上,我在这个GridView中使用了CollectionViewSource。碰巧也可以滚动到一个组,而不仅仅是一个我不知道的项目。

正如我提到的,检索scrollviewer没有问题。另一方面,我不能从索引中向上滚动元素。注意,我试图在放大的SemanticZoom控件中执行此操作。问题是SemanticZoom不包含作为ListViewBase的ContainerFromIndex方法。当SemanticZoom的IsZoomedinView属性值为true时,我无法使用SemanticZoom获取它。@Samuell是否要同步
ZoomedInView
ZoomedInView
?假设我的SemanticView处于ZoomedInView状态。我想从索引中滚动到目标项。但是我无法获取相应的DependencyObject并滚动到它。但是当SemanticZoom处于ZoomeOutView状态时,我没有问题,因为我在这个视图中有一个ListView,所以我可以使用ScrollIntoView方法。这更清楚吗?@Samuellioull我不明白你的问题。我的问题是,您想在
ViewChangeStarted
事件或其他时间转到您的“目标项”吗?