我目前正试图使用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进行翻转动画,那也很酷!
谢谢!
答案 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>