如何在Hub Windows Phone 8.1中访问MapControl的控件名称

时间:2015-03-12 03:10:31

标签: windows-phone-8.1 runtime

我想在Hub控件中创建一个mapcontrol,但每次我尝试从CS文件访问时,我都找不到名字!这是代码!

<HubSection Header="Rotas e Mapas" Foreground="White">
            <DataTemplate>
                <Grid>
                    <Maps:MapControl
        x:Name="MapControl1"
        MapServiceToken="ubgfhnhduyekheddjd"/>
                </Grid>
            </DataTemplate>
        </HubSection>

2 个答案:

答案 0 :(得分:0)

您的问题是您的地图控件位于DataTemplate内。它存在于Visual Tree而不是Logical树中。我建议您阅读有关此主题的文章 - How to access a named control inside a XAML DataTemplate (using CSharp)

答案 1 :(得分:0)

您可以处理MapControl控件的Loaded事件,并在其中将sender参数转换为MapControl并将其分配给页面变量。

  <HubSection Header="Map">
    <HubSection.ContentTemplate>
      <DataTemplate>
        <Maps:MapControl Loaded="MapControl_Loaded" ...


  public sealed partial class HubPage : Page
  {
    private MapControl map;
    ...

    private async void MapControl_Loaded(object sender, RoutedEventArgs e)
    {
      map = (MapControl)sender;

      map.Style = MapStyle.Aerial;        
      ...