2

我正在构建一个图片查看应用程序。在横向模式下,它像一本打开的书一样打开,显示 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”?

4

2 回答 2

1

您需要做的是创建两个数据模板,每个模板都有一个用户控件:

<DataTemplate x:key = "portraitTemplate">
            <local:portraitControl/>
 </DataTemplate>

 <DataTemplate x:key = "landscapeTemplate">
            <local:landscapeControl/>
 </DataTemplate>

在模板之间切换 Current_SizeChanged 事件:

flipView1.ItemTemplate = Resources["portraitTemplate"] as DataTemplate;
于 2015-04-10T14:49:59.943 回答
0

您可以在代码中定义 2 个不同XAML的模板并切换项目模板。

  <DataTemplate x:key = "datatTemplate1" />

  <DataTemplate x:key = "datatTemplate2" />

  flipView1.ItemTemplate = Resources["datatTemplate1"] as DataTemplate
于 2015-04-10T10:04:27.943 回答