Microsoft Surface - Flip&分散查看项目

时间:2010-04-02 03:55:36

标签: pixelsense

我目前正试图使用​​scatterview项目进行翻转,并且使用名为Thriple(http://thriple.codeplex.com/)的插件在概念上遇到一些问题。

基本上,双面thriple控件看起来像这样:

<thriple:ContentControl3D
  xmlns:thriple="http://thriple.codeplex.com/"
  Background="LightBlue"
  BorderBrush="Black"
  BorderThickness="2"
  MaxWidth="200" MaxHeight="200"
 >
<thriple:ContentControl3D.Content>
<Button 
  Content="Front Side"
  Command="thriple:ContentControl3D.RotateCommand"
  Width="100" Height="100"
  />
</thriple:ContentControl3D.Content>
<thriple:ContentControl3D.BackContent>
<Button 
  Content="Back Side"
  Command="thriple:ContentControl3D.RotateCommand"
  Width="100" Height="100"
  />
</thriple:ContentControl3D.BackContent>
</thriple:ContentControl3D>

我正在努力掌握的是我是否应该制作两个单独的ScatterView模板来绑定到我想要的数据,然后每个模板都是散点图项目的“前”和“后”或者我应该制作2个单独的ScatterView项目绑定到我想要的数据,然后绑定到主ScatterView项目的“后退”和“前面”?

如果有更好的方法可以使用ScatterViewItem进行翻转动画,那也很酷!

谢谢!

1 个答案:

答案 0 :(得分:0)

我会为数据创建两个单独的模板。对于用户来说,它仍然是相同的scatterviewitem(有两面),所以将它们作为两个单独的项目是没有意义的。您可以在ContentControl3D类的属性中指定要用于前面和后面的模板。 (它们的类型为DataTemplate

代码方面,它看起来像这样:

<thriple:ContentControl3D
  xmlns:thriple="http://thriple.codeplex.com/"
  Background="LightBlue"
  BorderBrush="Black"
  BorderThickness="2"
  MaxWidth="200" MaxHeight="200"
  Content="{Binding MyData}"
  BackContent="{Binding MyData}"
  ContentTemplate="{StaticResource MyFrontTemplate}"
  BackContentTemplate="{StaticResource MyBackTemplate}"   
 />

如果对您更有意义,您也可以直接在控件的声明中指定内容(就像上面的按钮一样)。这使您无需为内容创建数据模板:

<thriple:ContentControl3D
  xmlns:thriple="http://thriple.codeplex.com/"
  Background="LightBlue"
  BorderBrush="Black"
  BorderThickness="2"
  MaxWidth="200" MaxHeight="200"
 >

<thriple:ContentControl3D.Content>
  <Grid>
    <TextBlock Text="I'm the front" />
    <TextBlock Text="{Binding SomeDataProperty}" />
    <Button 
        Content="Flip"
        Command="thriple:ContentControl3D.RotateCommand"
        Width="100" Height="100"
        />
  </Grid>
<thriple:ContentControl3D.BackContent>
  <Grid>
    <TextBlock Text="I'm the back" />
    <TextBlock Text="{Binding SomeOtherDataProperty}" />
    <Button 
        Content="Flip"
        Command="thriple:ContentControl3D.RotateCommand"
        Width="100" Height="100"
        />
  </Grid>
</thriple:ContentControl3D.BackContent>
</thriple:ContentControl3D>