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





5.00/5 (1投票)
关于标签驱动应用程序或 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
添加到SurfaceWindow1
的TagVisualizer
中。我们可以通过 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 文章。