我如何访问集线器内 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;
...
我想在 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;
...