65.9K
CodeProject 正在变化。 阅读更多。
Home

Microsoft Surface 中的标记对象 – TagVisualizer、TagVisualization、TagVisualizationDefinition

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2009年9月10日

CPOL

1分钟阅读

viewsIcon

16700

关于标签驱动应用程序或 Surface SDK 中标签对象的文章

Microsoft 在 Surface SDK 中引入了一个新的概念,称为**标签驱动应用**或**标记对象**,通过该概念,Surface 可以识别放置在 Surface 桌面上的对象。对象上印有 Surface 引擎可以读取的标签。标签可以是**字节标签**或**标识标签**。

我们如何使用 Surface SDK 实现这一点呢?让我们看看。
我尝试了一个示例,使用了 Surface SDK 中的标记对象。

可以使用以下三个类实现标签可视化:

  • TagVisualizer – 实际响应标记对象,并在放置标签时显示 TagVisualization
  • TagVisualization - 是我们在 Surface 上放置标签时显示的内容。
  • TagVisualizationDefinition – 用于定义 TagVisualizer 将响应的标签值,以及可视化的源、物理位置、方向和其他属性。

所以让我们尝试一个示例。

  • 从 Visual Studio 2008 模板创建一个 Surface 项目。
  • SurfaceWindow1 中,添加一个 TagVisualizer
    <s:TagVisualizer Name="TagVisualizer">
    ....
    </s:TagVisualizer> 
  • 将一个 TagVisualization 添加到项目中。添加新项目>TagVisualization。我创建了 TagVisualization SampleTagVisualization
    <s:TagVisualization x:Class="MySurfaceApplication.SampleTagVisualization"          
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="http://schemas.microsoft.com/surface/2008"
    Loaded="SampleTagVisualization_Loaded">
    <Grid Height="400"
     Width="600"
     Background="White">
    <TextBlock Text="Some Tagged Object UI here."
              VerticalAlignment="Center"
              HorizontalAlignment="Center"
              Foreground="Red" />
    </Grid>
    </s:TagVisualization>
  • TagVisualizationDefinition 添加到 SurfaceWindow1TagVisualizer 中。我们可以通过 XAML 或代码隐藏的方式添加它。

    通过 XAML

    <s:TagVisualizer Name="TagVisualizer">
    <s:TagVisualizer.Definitions>
    <s:ByteTagVisualizationDefinition Value="192"
    Source="SampleTagVisualization.xaml"
    UsesTagOrientation="True"
    TagRemovedBehavior="Fade"
    PhysicalCenterOffsetFromTag="7.5,4.5"/>
    </s:TagVisualizer.Definitions>
    </s:TagVisualizer>

    或通过代码隐藏 (在构造函数中添加)

    ByteTagVisualizationDefinition tagVisualizationDefinition = new 
    ByteTagVisualizationDefinition();
    tagVisualizationDefinition.Value = 192;
    tagVisualizationDefinition.Source = new Uri("SampleTagVisualization.xaml",
    UriKind.Relative);
    tagVisualizationDefinition.UsesTagOrientation = true;
    tagVisualizationDefinition.TagRemovedBehavior = TagRemovedBehavior.Fade;
    tagVisualizationDefinition.PhysicalCenterOffsetFromTag = new 
    Vector(7.5, 4.5);
    TagVisualizer.Definitions.Add(tagVisualizationDefinition);

    在 Surface 模拟器中构建并运行应用程序。标签值为 192。所以将标签值设置为 C0 (十六进制)。 

  • 更多 Microsoft Surface 文章
© . All rights reserved.