我正在构建一个图片查看应用程序。在风景中,它打开就像一本显示2个连续图像的打开的书。在纵向中,它显示单个图像。 我正在考虑在我的FlipView的DataTemplate中为这两个ViewState中的每一个使用UserControl。然后在Current_SizeChanged事件中更改其可见性。
这是我的Xaml,只有一个UserControl设置为DataTemplate:
<FlipView x:Name="flipView1" SelectionChanged="flipView1_SelectionChanged">
<FlipView.ItemTemplate>
<DataTemplate>
<local:portraitControl/>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
但是DataTemplate不能包含多个UserControl。有没有办法我可以将本地UserControl 绑定到我的DataTemplate,以便在不在Xaml中的代码中为其分配我的“portraitControl”或“landscapeControl”?
答案 0 :(得分:1)
您需要做的是创建两个数据模板,每个模板都有一个用户控件:
<DataTemplate x:key = "portraitTemplate">
<local:portraitControl/>
</DataTemplate>
<DataTemplate x:key = "landscapeTemplate">
<local:landscapeControl/>
</DataTemplate>
在模板之间切换Current_SizeChanged事件:
flipView1.ItemTemplate = Resources["portraitTemplate"] as DataTemplate;
答案 1 :(得分:0)
您可以在XAML
中定义2个不同的模板,并在代码中切换项目模板。
<DataTemplate x:key = "datatTemplate1" />
<DataTemplate x:key = "datatTemplate2" />
flipView1.ItemTemplate = Resources["datatTemplate1"] as DataTemplate