0

我有以下 XAML 代码,后面的 C# 代码中唯一可用的元素是 Grid 和 FlipView。如何使代码中的 ScrollViewer、Image 或 Viewbox 可见?

XAML:

<Grid x:Name="gridViewPages">
        <FlipView x:Name="FlipView1" Loaded="FlipView1_Loaded" Style="{StaticResource FlipViewPreviewIndicator}" Tapped="FlipView1_Tapped">
            <FlipView.ItemTemplate>
                <DataTemplate>
                    <ScrollViewer x:Name="pagesScrollViewer" ZoomMode="Enabled"
                                    HorizontalAlignment="Center"
                                    VerticalAlignment="Center"
                                    HorizontalScrollBarVisibility="Hidden"
                                    VerticalScrollBarVisibility="Hidden"
                                    MinZoomFactor="1.0"
                                    MaxZoomFactor="3.0"
                                    Margin="0"
                                    Width="1500" DoubleTapped="PagesScrollViewer_DoubleTapped">
                        <Viewbox x:Name="pagesViewbox">
                            <Image Source="{Binding}"
                               Height="730"
                               x:Name="pageImage" Stretch="Uniform" Loaded="MainImage_Loaded"/>
                        </Viewbox>
                    </ScrollViewer>
                </DataTemplate>
            </FlipView.ItemTemplate>  
        </FlipView>
    </Grid>

翻转视图是自定义的,还包含一个定义的列表视图,在代码中也不可见......:

<Page.Resources>
 ...
<ListView x:Name="pagesPreview" HorizontalAlignment="Center" Height="100" VerticalAlignment="Bottom" Width="Auto"
                                              ItemsSource="{TemplateBinding ItemsSource}"
                                              SelectedItem="{Binding SelectedItem, Mode=TwoWay, RelativeSource={RelativeSource Mode=TemplatedParent}}"
                                              ScrollViewer.HorizontalScrollBarVisibility="Auto"
                                              ScrollViewer.VerticalScrollBarVisibility="Disabled"
                                              ScrollViewer.HorizontalScrollMode="Enabled"
                                              ScrollViewer.VerticalScrollMode="Disabled"
                                              Background="AliceBlue"
                                              Opacity="1" 
                                              SelectionChanged="pagesPreview_SelectionChanged"
                                              Visibility="Visible">
                                        <ListView.ItemsPanel>
                                            <ItemsPanelTemplate>
                                                <StackPanel  Orientation="Horizontal" />
                                            </ItemsPanelTemplate>
                                        </ListView.ItemsPanel>
                                        <ListView.ItemTemplate>
                                            <DataTemplate>
                                                <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
                                                    <Image Source="{Binding}" Stretch="UniformToFill"/>
                                                </Grid>
                                            </DataTemplate>
                                        </ListView.ItemTemplate>
                                    </ListView>
 ...
</Page.Resources>
4

1 回答 1

0

看flipview的基本概念就是要有多个页面才有翻转的效果。因此,无论 Data 模板包含什么,都会重复多次。因此,如果您希望 x:Name 出现,那么您将不会成功。

据我所知,有两种方法:

VisualTreeHelper -> 有关它的更好细节,请通过此链接

从数据模板中获取元素

您可以手动迭代翻转视图元素并跟踪翻转视图的子项。在调试模式下尝试一下,您将大致了解之后会发生什么。只需跟踪要修改的选定索引位置的元素

谢谢。

于 2013-09-06T09:32:30.847 回答