繁体   English   中英

Windows应用商店-XAML UI元素在C#代码中不可见

[英]Windows Store App - XAML UI element not visible in C# code

我有以下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>

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

<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>

翻页视图的基本概念是使多个页面具有翻页效果。 因此,数据模板中包含的所有内容都会重复多次。 因此,如果您希望x:Name出现,那么您将不会获得任何成功。

据我所知,有两种方法:

VisualTreeHelper->有关它的详细信息,请通过此链接

从数据模板获取元素

您可以手动遍历flipview元素并跟踪flipview的子级。 尝试在调试模式下,您将对之后发生的事情有一个清晰的认识。 只需跟踪要修改所选索引位置的元素即可

谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM