1

我目前正在尝试使用 scatterview 项目进行翻转,但我在概念上遇到了一些麻烦,使用了一个名为 Thriple ( http://thriple.codeplex.com/ ) 的插件。

本质上,一个 2 面三元控件如下所示:

<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>

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

如果有更好的方法来使用 ScatterViewItem 的翻转动画,那也太酷了!

谢谢!

4

1 回答 1

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>
于 2010-05-04T17:49:34.743 回答