xaml - 最后一个列表框项目隐藏在 windows phone 8.1 RT 中的命令栏后面

标签 xaml listbox windows-phone-8.1 winrt-xaml commandbar

在我的 xaml 页面中,我在堆栈面板中有一个动态生成的 ListBox、Textblocks 和 Textboxes,它还有一个“Page.BottomAppBar”,它由页面底部的 CommandBar 组成。

代码编辑 1: (提供完整的 XAML UI 代码)

<Page>
<ScrollViewer VerticalScrollBarVisibility="Auto">
    <Grid Background="White">
        <Grid.RowDefinitions>
            <RowDefinition Height="60"></RowDefinition>
            <RowDefinition Height="auto"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid Grid.Row="0">
            <TextBlock Foreground="#616161" x:Name="tbHeading1" Text="Event Details" Margin="15,0,0,0" Width="auto" TextWrapping="Wrap" VerticalAlignment="Center" FontFamily="Calibri" FontSize="28" HorizontalAlignment="Left"></TextBlock>
        </Grid>
        <!--<ScrollViewer VerticalScrollBarVisibility="Auto"  >-->
            <Grid Grid.Row="1">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <StackPanel Grid.Row="0" Background="White" Margin="0,0,0,1">
                    <!--EVENT TYPE-->
                    <TextBlock FontFamily="Arial MT Regular" Margin="15,0,0,0" Foreground="#616161" x:Name="tbEventType" Text="Event Type" FontSize="20"></TextBlock>
                    <ComboBox x:Name="cmbEventType" RequestedTheme="Light" Padding="5,0,0,0" PlaceholderText=" - Tap for Selection - " FontSize="16" FontFamily="Calibri" Width="auto" BorderBrush="#80b656" BorderThickness="2" SelectedIndex="-1" SelectionChanged="cmbEventType_SelectionChanged" Margin="15,0">
                        <ComboBox.ItemTemplate>
                            <DataTemplate>
                                <Grid>
                                    <TextBlock x:Name="txtEventType" Text="{Binding Name}" Padding="5,0,0,0" Foreground="#80b656" FontFamily="Calibri" FontSize="20" TextAlignment="Left"/>
                                </Grid>
                            </DataTemplate>
                        </ComboBox.ItemTemplate>
                    </ComboBox>
                    <!--END EVENT TYPE-->
                    <!--SITE-->
                    <TextBlock FontFamily="Arial MT Regular" Margin="15,5,0,0" Foreground="#616161" x:Name="tbSite" Text="Site" FontSize="20"></TextBlock>
                    <ComboBox x:Name="cmbSite" RequestedTheme="Light" Padding="5,0,0,0" PlaceholderText=" - Tap for Selection - " FontSize="16" FontFamily="Calibri" Width="auto" BorderBrush="#80b656" BorderThickness="2" Margin="15,0"
                          SelectionChanged="cmbSite_SelectionChanged" SelectedIndex="-1">
                        <ComboBox.ItemTemplate>
                            <DataTemplate>
                                <Grid>
                                    <TextBlock x:Name="txtSite" Text="{Binding Name}" Padding="5,0,0,0" Foreground="#80b656" FontFamily="Calibri" FontSize="20" TextAlignment="Left"/>
                                </Grid>
                            </DataTemplate>
                        </ComboBox.ItemTemplate>
                    </ComboBox>
                    <!--END SITE-->
                    <!--LOCATION-->
                    <TextBlock FontFamily="Arial MT Regular" Margin="15,5,0,0" Foreground="#616161" x:Name="tbLocation" Text="Location" FontSize="20"></TextBlock>
                    <ComboBox x:Name="cmbLocation" RequestedTheme="Light" Padding="5,0,0,0" PlaceholderText=" - Tap for Selection - " FontSize="16" FontFamily="Calibri" Width="auto" BorderBrush="#80b656" BorderThickness="2" SelectedIndex="-1" Margin="15,0">
                        <ComboBox.ItemTemplate>
                            <DataTemplate>
                                <Grid>
                                    <TextBlock x:Name="txtLocation" Text="{Binding Location_Description}" Padding="5,0,0,0" Foreground="#80b656" FontFamily="Calibri" FontSize="20" TextAlignment="Left"/>
                                </Grid>
                            </DataTemplate>
                        </ComboBox.ItemTemplate>
                    </ComboBox>
                    <!--END LOCATION-->
                    <!--EVENT DATE-->
                    <TextBlock FontFamily="Arial MT Regular" Margin="15,5,0,0" Foreground="#616161" x:Name="tbEventDate" Text="Event Date" FontSize="20"></TextBlock>
                    <DatePicker x:Name="txtEventDate" Margin="15,0" Background="White" Foreground="#80b656" FontSize="20" BorderBrush="Silver"  HorizontalAlignment="Left" Width="auto" DateChanged="txtEventDate_DateChanged"></DatePicker>
                    <!--END EVENT DATE-->
                    <Line x:Name="lineSeparator" Fill="Gray" Stroke="Gray" X2="1" Stretch="Fill" Margin="0"/>
                </StackPanel>

                <!--ADDITIONAL FIELDS-->
                <Grid x:Name="spAdditionalFeilds" Grid.Row="1" Background="White" Visibility="Collapsed">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="auto"></RowDefinition>
                        <RowDefinition Height="auto"></RowDefinition>
                        <RowDefinition Height="5"></RowDefinition>
                    </Grid.RowDefinitions>
                    <TextBlock x:Name="txtblkAdditionalFeilds" Grid.Row="0" Margin="15,0,0,0" Foreground="#616161" Text="Additional Fields" FontWeight="SemiBold" FontSize="20"></TextBlock>
                    <ListBox x:Name ="lstAdditionFields" Grid.Row="1" ItemsSource="{Binding AdditionalFieldControl, Mode=TwoWay}" ScrollViewer.VerticalScrollBarVisibility="Disabled" Foreground="Black" Background="White" HorizontalAlignment="Left" VerticalAlignment="Top" BorderThickness="1" Width="auto" Tapped="lstAdditionFields_Tapped" ScrollViewer.VerticalScrollMode="Disabled">                            
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel Margin="0,5,0,5">
                                    <TextBlock x:Name="txtCaption" FontFamily="Arial MT Regular" Margin="15,5,0,0" Text="{Binding Caption, Mode=TwoWay}" Padding="0,0,0,0" Foreground="#616161" FontSize="20" Width="auto"/>
                                    <Border Margin="15,8,10,0" Padding="2,3,2,3" BorderBrush="#80b656" BorderThickness="2">
                                        <TextBlock x:Name="txtDefaultVal" FontFamily="Arial MT Regular" Text="{Binding StrDefalutValue, Mode=TwoWay}" TextWrapping="WrapWholeWords" Padding="5,0,0,0" Foreground="#80b656" FontSize="20" Loaded="txtDefaultVal_Loaded" />
                                    </Border>
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>
                    <Line x:Name="lineSeparatorAdditionalField" Grid.Row="2" Fill="Gray" Stroke="Gray" X2="1" Stretch="Fill" Margin="5,0"/>
                </Grid>
                <!--END OF ADDITIONAL FIELD-->

                <!--IMAGE ATACHMENT LIST-->
                <Grid x:Name="spImageList" Grid.Row="2" Background="White" Margin="0,12,0,0" Visibility="Collapsed">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="auto"></RowDefinition>
                        <RowDefinition Height="auto"></RowDefinition>
                    </Grid.RowDefinitions>
                    <TextBlock x:Name="txtblkAttachmentList" Grid.Row="0" Margin="15,0,0,0" Foreground="#616161" Text="Attachment List" FontWeight="SemiBold" FontSize="20"></TextBlock>
                    <ListBox x:Name="lbAttachmentList" Grid.Row="1" ItemsSource="{Binding EventAttachment, Mode=TwoWay}" Foreground="Black" Background="White" HorizontalAlignment="Left" VerticalAlignment="Top" BorderThickness="1" Width="auto" Padding="0,0,0,40" ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled">                           
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <!--ONE ROW-->
                                <StackPanel>
                                    <Grid x:Name="attachmentStackPanel" VerticalAlignment="Center" Margin="0,5">
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="150"></ColumnDefinition>
                                            <ColumnDefinition Width="*"></ColumnDefinition>
                                            <ColumnDefinition Width="70"></ColumnDefinition>
                                        </Grid.ColumnDefinitions>
                                        <Image Grid.Column="0" Margin="15,0,0,0" Source="{Binding AttachmentPath,Converter={StaticResource PathToImage}, Mode=TwoWay}" Width="110" Height="110" ></Image>
                                        <TextBlock x:Name="txtName" Grid.Column="1" Width="auto" Margin="20,0,0,0" Text="{Binding Name,Mode=TwoWay}" Style="{StaticResource BodyTextBlockStyle}" Foreground="#616161" VerticalAlignment="Center" FontFamily="Calibri" FontSize="28" HorizontalAlignment="Left" Loaded="txtName_Loaded" />
                                        <AppBarButton x:Name="btnRemoveImage" Grid.Column="2" Height="50" Icon="Cancel" Width="70" VerticalAlignment="Center" Foreground="Red" Click="btnRemoveImage_Click"></AppBarButton>
                                    </Grid>
                                    <Line x:Name="lineSeparator" Fill="#E0E0E0" Stroke="Gray" X2="1" Stretch="Fill" Margin="5,5"/>
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>
                </Grid>
                <!--END IMAGE ATACHMENT LIST-->
            </Grid>
        <!--</ScrollViewer>-->
    </Grid>
</ScrollViewer>
<Page.BottomAppBar>
    <CommandBar x:Name="CommandBarBottom" IsSticky="False" Background="LightGray" Foreground="#616161" ClosedDisplayMode="Compact">
        <CommandBar.PrimaryCommands>
            <AppBarButton x:Name="btnSaveEvent" Icon="Save" Label="Done"  HorizontalAlignment="Right" Content="Save Event" Click="btnSaveEvent_Click"/>
            <AppBarButton x:Name="btnAddAttachment" Icon="Attach" Label="Capture Img"  HorizontalAlignment="Right" HorizontalContentAlignment="Right" Content="Capture Image" Click="btnAddAttachment_Click" />
        </CommandBar.PrimaryCommands>
    </CommandBar>
</Page.BottomAppBar>

有时我的 UI(列表)的最后一个列表框项目隐藏在命令栏后面(请参阅附件)。
. enter image description here

所以,我不希望 UI 隐藏在命令栏后面。

用户界面完美地滚动,与命令栏重叠。但有时当它开始在命令栏后面滚动时会出现这个问题。在这种情况下,ScrollViewer 不会按要求滚动。

最佳答案

有几件事:

  • 我建议您使用 ListView而不是 ListBox除非您出于某种特殊原因需要它。更多信息refer this .
  • 由于您的 ApplicationView,Appbar 当前与您的内容重叠要修复它,您可以引用 this .
  • 关于xaml - 最后一个列表框项目隐藏在 windows phone 8.1 RT 中的命令栏后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40378400/

    相关文章:

    c# - 如何为 WPF ListView 禁用 XAML 中的某些项目

    c# - 访问 C#/WPF 中 IMultiValueConverter.ConvertBack() 中的绑定(bind)数据

    c# - 如何删除所有 ListBox 项目?

    c# - 使用 TextBox 实时过滤 ListBox

    xna - 停止通知栏在游戏过程中弹出

    c# - 将动态创建的位图对象绑定(bind)到 WPF 中的图像

    c# - 位置服务关闭时,Windows 8 手机应用程序在打开时崩溃

    excel - VBA列表框问题

    c# - Windows Phone 8.1 Pivot 中的两列 Gridview

    c# - 通用Windows App C#-导航到同一页面的新实例时缓存页面的实例(和状态)