【发布时间】:2019-01-15 13:15:23
【问题描述】:
我正在为平板电脑创建一个应用程序,它将显示一个充满数据的网格。我希望能够单击每个项目,然后将该数据显示在弹出窗口或弹出窗口或其他对话框中,以便我可以像表单一样对其进行编辑。到目前为止,我正在使用一个弹出窗口,其中包含这样的堆栈面板:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Margin="10 0 10 0">
<GridView ItemsSource="{x:Bind Activities}" ItemsPanel="{StaticResource ResourceKey=ItemsPanelTemplate}">
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</GridView.ItemContainerStyle>
<GridView.ItemTemplate>
<DataTemplate x:DataType="model:TimActivity">
<Grid Tapped="GridView_Tapped">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{x:Bind Path=Type, Converter={StaticResource TimActivityTypeToStringConverter}}" />
<TextBlock Grid.Column="1" Text="{x:Bind StartTime}" />
<TextBlock Grid.Column="2" Text="{x:Bind EndTime}" />
<TextBlock Grid.Column="3" Text="{x:Bind From}" />
<TextBlock Grid.Column="4" Text="{x:Bind To}" />
<TextBlock Grid.Column="5" Text="{x:Bind Comment}" />
<TextBlock Grid.Column="6" Text="{x:Bind Path=Chargeable, Converter={StaticResource BoolToStringConverter}}" />
<FlyoutBase.AttachedFlyout>
<Flyout Placement="Full">
<StackPanel>
<TextBlock Text="Activity"/>
<TextBox Text="{x:Bind Path=Type, Converter={StaticResource TimActivityTypeToStringConverter}}" />
<TextBlock Text="Start Time"/>
<TextBox Text="{x:Bind StartTime}" />
<TextBlock Text="End Time"/>
<TextBox Text="{x:Bind EndTime}" />
<TextBlock Text="From"/>
<TextBox Text="{x:Bind From}" />
<TextBlock Text="To"/>
<TextBox Text="{x:Bind To}" />
<TextBlock Text="Comment"/>
<TextBox Text="{x:Bind Comment}" />
<TextBlock Text="Chargeable?"/>
<TextBox Text="{x:Bind Path=Chargeable, Converter={StaticResource BoolToStringConverter}}" />
</StackPanel>
</Flyout>
</FlyoutBase.AttachedFlyout>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
</Grid>
我将Placement 设置为Full,但它只会垂直拉伸弹出窗口,而不是全屏。你能告诉我一个。弹出是对此的正确控制,并且b。如何让它全屏?
【问题讨论】:
-
StackPanel绝不会允许超出其需要的空间。尝试使用Grid和RowDefinitions,这将允许Children正确间隔。 -
Flyout 的目的就是只使用其子控件所需的空间!如果你想为你的项目创建一个“编辑页面”,那么只需在你的应用中实现一个导航系统......或者只是一个主从页面。
-
感谢@LucaLindholm。我去看看。