2013-05-07 31 views
4

正如你可以看到下面的代码是我从微软样品拿到Windows 8的地铁::什么是AutomationProperties.AutomationId和AutomationProperties.Name

<SemanticZoom.ZoomedOutView> 
    <tiles:VariableTileControl x:Name="SemanticItemGridView" 
           AutomationProperties.AutomationId="itemGridView" 
           AutomationProperties.Name="Grouped Items" 
           Padding="80,87,10,0" 
           ItemsSource="{Binding Source={StaticResource SemanticgroupedItemsViewSource}}" 
           ItemTemplateSelector="{StaticResource SemanticMyTemplates}" 
           SelectionMode="None" 
           IsSwipeEnabled="false" 
           IsItemClickEnabled="True" 
           ItemClick="ItemView_ItemClick" 
           Margin="0,0,0,-13" 
           HorizontalAlignment="Left" 
           ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
           ItemContainerStyle="{StaticResource SemanticGridViewItemStyle}"> 
     <tiles:VariableTileControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <VariableSizedWrapGrid Margin="0,0,10,0"/> 
      </ItemsPanelTemplate> 
     </tiles:VariableTileControl.ItemsPanel> 
     <tiles:VariableTileControl.GroupStyle> 
      <GroupStyle> 
       <GroupStyle.HeaderTemplate> 
        <DataTemplate> 
         <StackPanel Margin="1,0,0,6" Orientation="Horizontal" MinWidth="280"> 
          <Button AutomationProperties.Name="Group Title" 
            Content="{Binding Title}" 
            Click="Header_Click" 
            Style="{StaticResource TextButtonStyle}" Foreground="White" FontSize="28" Background="#FFD71921" FontWeight="Light"/> 
          <TextBlock x:Name="tbk" Text="TM" VerticalAlignment="Top" Visibility="{Binding Tm}"/> 
          <TextBlock TextWrapping="Wrap" VerticalAlignment="Center" FontFamily="Segoe UI" FontSize="28" FontWeight="Light" Text="("/> 
          <TextBlock x:Name="txtNo" TextWrapping="Wrap" Text="{Binding No}" VerticalAlignment="Center" FontFamily="Segoe UI" FontSize="28" FontWeight="Light"/> 
          <TextBlock TextWrapping="Wrap" VerticalAlignment="Center" FontFamily="Segoe UI" FontSize="28" FontWeight="Light" Text=")"/> 
          <TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="10,0,0,10" Style="{StaticResource GroupHeaderTextStyle}" Foreground="#FF9F9F9F"/> 
          <TextBlock x:Name="txtVideo" HorizontalAlignment="Right" TextWrapping="Wrap" Text="{Binding Sub}" VerticalAlignment="Bottom" Foreground="#FFC4261D" Margin="0,21,0,0" FontFamily="Segoe UI" FontSize="16" Visibility="{Binding SubTl}"/> 
          <TextBlock x:Name="txtPicture" HorizontalAlignment="Right" TextWrapping="Wrap" Text="{Binding Sub2}" VerticalAlignment="Bottom" Foreground="#FFC4261D" Margin="0,21,0,0" FontFamily="Segoe UI" FontSize="16" Visibility="{Binding SubT2}"/> 
         </StackPanel> 
        </DataTemplate> 
       </GroupStyle.HeaderTemplate> 
       <GroupStyle.Panel> 
        <ItemsPanelTemplate> 
         <VariableSizedWrapGrid ItemHeight="5" ItemWidth="5" Orientation="Vertical" Margin="0,0,10,0"/> 
        </ItemsPanelTemplate> 
       </GroupStyle.Panel> 
      </GroupStyle> 
     </tiles:VariableTileControl.GroupStyle> 
    </tiles:VariableTileControl> 
</SemanticZoom.ZoomedOutView> 

<SemanticZoom.ZoomedInView> 
    <GridView x:Name="itemGridView" 
       AutomationProperties.AutomationId="itemGridView" 
       AutomationProperties.Name="Grouped Items" 
       Padding="116,110,40,10" 
       ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}" 
       ItemTemplateSelector="{StaticResource LivTemplates}" 
       SelectionMode="None" 
       IsSwipeEnabled="false" 
       IsItemClickEnabled="True" 
       ItemClick="ItemView_ItemClick" 
       ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
     <GridView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <VirtualizingStackPanel Orientation="Horizontal" Margin="0,0,80,0"/> 
      </ItemsPanelTemplate> 
     </GridView.ItemsPanel> 
     <GridView.GroupStyle> 
      <GroupStyle ContainerStyle="{StaticResource HubPageMoreGroupItemStyle}"> 
       <GroupStyle.HeaderTemplate> 
        <DataTemplate> 
         <StackPanel Margin="1,0,0,6" Orientation="Horizontal"> 
          <Button AutomationProperties.Name="Group Title" 
            Content="{Binding name}" 
            Click="Header_Click" 
            Style="{StaticResource TextButtonStyle}" 
            Foreground="White" FontSize="32" 
            Background="#FFD71921" FontWeight="Light"/> 
          <TextBlock x:Name="tbk" Text="TM" VerticalAlignment="Top" Visibility="{Binding Tm}"/> 
          <TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="10,0,0,10" Style="{StaticResource GroupHeaderTextStyle}" Foreground="#FF9F9F9F"/> 
          <TextBlock x:Name="txtVideo" HorizontalAlignment="Right" TextWrapping="Wrap" Text="{Binding Sub}" VerticalAlignment="Bottom" Foreground="#FFC4261D" Margin="0,21,0,0" FontFamily="Segoe UI" FontSize="16" Visibility="{Binding SubTl}"/> 
          <TextBlock x:Name="txtPicture" HorizontalAlignment="Right" TextWrapping="Wrap" Text="{Binding Sub2}" VerticalAlignment="Bottom" Foreground="#FFC4261D" Margin="0,21,0,0" FontFamily="Segoe UI" FontSize="16" Visibility="{Binding SubT2}"/> 
         </StackPanel> 
        </DataTemplate> 
       </GroupStyle.HeaderTemplate> 
       <GroupStyle.Panel> 
        <ItemsPanelTemplate> 
         <VariableSizedWrapGrid ItemHeight="5" ItemWidth="5" Orientation="Vertical" Margin="0,0,133,0"/> 
        </ItemsPanelTemplate> 
       </GroupStyle.Panel> 
      </GroupStyle> 
     </GridView.GroupStyle> 
    </GridView> 
</SemanticZoom.ZoomedInView> 

在上面的代码中,我只在一个我感兴趣的线,是下面 AutomationProperties.AutomationId = “itemGridView” 所示

AutomationProperties.Name = “分组的项目”

我想知道xaml中上述行的作用。

回答

8

从UI自动化

的微软概述......它使辅助技术产品,如屏幕阅读器,以提供有关用户界面给最终用户,并通过比标准等手段操纵UI信息输入...

http://msdn.microsoft.com/en-us/library/windows/desktop/ee684009.aspx

编辑:

例如,在可见ual Studio,如果您创建新的Windows应用商店网格应用,请查看GroupedItemsPage.xaml。您会看到一些已设置AutomationProperties.Name的地方。

现在打开Windows 8 Charms栏并搜索“讲述人”,然后运行结果中出现的讲述人应用程序。你会听到一个人开始在屏幕上阅读的东西。

如果您返回到Visual Studio并运行您创建的新Grid应用程序,Narrator将读取Grid App中的各种内容,其中一些将是xaml中定义的AutomationProperties.Names。

尝试更改AutomationProperties.Name以了解其工作原理。

+0

嗨Murkaeus,链接它的C和C + +开发比它在C#,XAML中使用。 – 2013-05-08 05:04:09

+0

两者都是一样的。 – Murkaeus 2013-05-08 05:30:33

+0

你可以给我例子或演示C#,XAML项目在哪里使用它。 – 2013-05-08 05:35:39

0

我对此也做了一些研究,我想用它在Style-ControlTemplate中设置可见性。

但是,此页解释了如何使用AutomationProperties: http://msdn.microsoft.com/en-us/library/ff400332%28v=vs.95%29.aspx

例如,请考虑此XAML ::

<Button AutomationProperties.Name="Back" 
     Content="{Binding Title}" 
     Style="{StaticResource TextButtonStyle}" /> 

看它使用的样式:{StaticResource TextButtonStyle},这相当于一个在您的其中一个资源词典中添加样式。

<Style x:Key="TextButtonStyle" TargetType="ButtonBase"> 

这里面的风格AutomationProperties可用于:

<TextBlock x:Name="TextLabel" Text="{TemplateBinding AutomationProperties.Name}" /> 

所以Basicly可以使用AutomationProperties填写具有特定属性的模板。

相关问题