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

フリップビューの基本的な概念は、複数のページにフリップ効果を持たせることです。そのため、データ テンプレートに含まれるものは何でも、複数回繰り返されます。したがって、x:Name を表示させたい場合は、成功しません。

私の知る限り、2つの方法があります:

VisualTreeHelper -> 詳細については、このリンクを参照してください

データ テンプレートから要素を取得する

フリップビュー要素を手動で繰り返し、フリップビューの子を追跡できます。デバッグモードで試してみると、何が次に来るかについてかなりのアイデアが得られます。変更したい選択したインデックス位置の要素を追跡するだけです

ありがとう。

于 2013-09-06T09:32:30.847 に答える