C# 增强现实问题

C# 增强现实问题,c#,windows-phone,augmented-reality,C#,Windows Phone,Augmented Reality,我正在使用windows phone 8应用程序,希望添加增强现实功能,我正在使用GART,但我也遇到了同样的情况 通过将canvas.zindex添加到1,我仍然遇到同样的问题(world view中的项目闪烁并消失),所以这里可能有人有更好的解决方案?我正在使用mvvm Patrn来处理这个AR 下面是我使用mvvm的方法 这是我的主视图模型 private ObservableCollection<ARItem> _ardisplayLocation = null; publi

我正在使用windows phone 8应用程序,希望添加增强现实功能,我正在使用GART,但我也遇到了同样的情况 通过将canvas.zindex添加到1,我仍然遇到同样的问题(world view中的项目闪烁并消失),所以这里可能有人有更好的解决方案?我正在使用mvvm Patrn来处理这个AR

下面是我使用mvvm的方法

这是我的主视图模型

private ObservableCollection<ARItem> _ardisplayLocation = null;
public ObservableCollection<ARItem> ardisplayLocation
{
    get { return _ardisplayLocation; }
    set { this.SetProperty(ref this._ardisplayLocation, value); }
}

private void UpdateTransport()
    {
        try
        {
            myMessage = "Loading web server data...";
            WebClient client = new WebClient();
            Uri uri = new Uri(transportURL1 + latitude + "%2C" + longitude + transportURL2, UriKind.Absolute);
            client.DownloadStringCompleted += (s, e) =>
            {
                MainPage mainpage = new MainPage();
                mainpage.RefreshButton();
                if (e.Error == null)
                {
                    RootObject result = JsonConvert.DeserializeObject<RootObject>(e.Result);
                    hereRestProperty = new ObservableCollection<Item>(result.results.items);

                    for (int i = 0; i < hereRestProperty.Count; i++)
                    {
                        ardisplayLocation.Add(new CityPlace()
                        {
                             GeoLocation = new GeoCoordinate(hereRestProperty[i].coordinate.Latitude,hereRestProperty[i].coordinate.Longitude),
                             Content = hereRestProperty[i].title,
                             Description = hereRestProperty[i].vicinity
                        });
                    }
                }
                else
                {
                    isFailed = Visibility.Visible;
                    myMessage = "Failed to load web server data, please refresh";
                }
                isBusy = false;
            };
            client.DownloadStringAsync(uri);
        }
        catch (Exception)
        {
            isBusy = false;
            isFailed = Visibility.Visible;
            myMessage = "Something wrong happen, please refresh";
        }
    }
还有我的xaml

<gart:ARDisplay Name="ardisplay" AttitudeRefreshRate="50" MovementThreshold="10">
    <gart:VideoPreview x:Name="videoPreview" Canvas.ZIndex="1"/>
    <gart:WorldView x:Name="worldView" Canvas.ZIndex="1" ItemTemplate="{StaticResource CityItemTemplate}"  MinItemScale="0.1" MaxItemScale="1.0" FarClippingPlane="300.0" NearClippingPlane="1.0"/>
    <gart:HeadingIndicator x:Name="headingIndicator" Canvas.ZIndex="1" Width="300" Height="300" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</gart:ARDisplay>

和我的数据模板

<DataTemplate x:Key="CityItemTemplate">
    <Border BorderBrush="Black" BorderThickness="4" CornerRadius="8" Background="#FF003847" Width="320">
        <StackPanel Margin="4">
            <TextBlock x:Name="NameBlock" TextWrapping="NoWrap" Text="{Binding Content}" FontSize="38" VerticalAlignment="Center" Margin="0,0,4,0"  Grid.Column="1" TextTrimming="WordEllipsis"/>
            <TextBlock x:Name="DescriptionBlock" TextWrapping="Wrap" Text="{Binding Description}" FontSize="24" VerticalAlignment="Center" Margin="0,0,4,0" Grid.Column="1" TextTrimming="WordEllipsis" MaxHeight="168"/>
        </StackPanel>
    </Border>
</DataTemplate>

您的数据模板中缺少Canvas.ZIndex

<DataTemplate x:Key="CityItemTemplate">
    <Border BorderBrush="Black" BorderThickness="4" CornerRadius="8" Background="#FF003847" Width="320" Canvas.ZIndex="2">
        <StackPanel Margin="4">
            <TextBlock x:Name="NameBlock" TextWrapping="NoWrap" Text="{Binding Content}" FontSize="38" VerticalAlignment="Center" Margin="0,0,4,0"  Grid.Column="1" TextTrimming="WordEllipsis"/>
            <TextBlock x:Name="DescriptionBlock" TextWrapping="Wrap" Text="{Binding Description}" FontSize="24" VerticalAlignment="Center" Margin="0,0,4,0" Grid.Column="1" TextTrimming="WordEllipsis" MaxHeight="168"/>
        </StackPanel>
    </Border>
</DataTemplate>

<DataTemplate x:Key="CityItemTemplate">
    <Border BorderBrush="Black" BorderThickness="4" CornerRadius="8" Background="#FF003847" Width="320" Canvas.ZIndex="2">
        <StackPanel Margin="4">
            <TextBlock x:Name="NameBlock" TextWrapping="NoWrap" Text="{Binding Content}" FontSize="38" VerticalAlignment="Center" Margin="0,0,4,0"  Grid.Column="1" TextTrimming="WordEllipsis"/>
            <TextBlock x:Name="DescriptionBlock" TextWrapping="Wrap" Text="{Binding Description}" FontSize="24" VerticalAlignment="Center" Margin="0,0,4,0" Grid.Column="1" TextTrimming="WordEllipsis" MaxHeight="168"/>
        </StackPanel>
    </Border>
</DataTemplate>