我如何访问集线器内 MapControl 的控件名称 Windows Phone 8.1

How can i access control name of MapControl inside a Hub Windows Phone 8.1

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

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

您的问题是您的地图控件位于 DataTemplate 内。它存在于可视化树中而不是逻辑树中。我建议您阅读有关该主题的这篇文章 - How to access a named control inside a XAML DataTemplate (using CSharp)

可以处理MapControl控件的Loaded事件,在里面把sender参数传给MapControl,赋值给page变量。

  <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;        
      ...