在我的uwp应用程序中,我将要求用户从大量单词中做出有意义的句子:
例如,当用户打开应用程序时,他/她将看到:
“寻求stackoverflow的一个很好的帮助”
然后,用户需要将每个单词拖放到正确的位置上,以根据给定的单词做出有意义的句子:
“ stackoverflow是寻求帮助的好地方”
还请记住,文字应居中对齐。
使用单行句子可以通过水平列表视图来完成。我已经做到了。对于多行,我使用了gridview。我将文本中的每个字符串都作为listview / gridview项,并使用listview / gridview控件的reorder属性来使其工作。
但是到那时我还是有问题。
2行文本应如下所示:
------------------
-------
但是现在看起来像这样:
-----------------
---------
我知道这是因为gridview。但是我目前不知道要解决这个问题。任何想法将不胜感激。
谢谢。
修改:
.xaml:
<StackPanel
x:Name="stack_panel1"
Margin="50"
Orientation="Vertical"
Background="AliceBlue"
Padding="50"
HorizontalAlignment="Center"
VerticalAlignment="Center"
>
<GridView x:Name="GridView1"
AllowDrop="True"
CanDragItems="True"
CanReorderItems="True"
Background="PaleGoldenrod"
Width="500"
Height="500">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Orientation="Horizontal" MaximumRowsOrColumns="5"></ItemsWrapGrid>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
</StackPanel>
.cs:
public sealed partial class DragDropDemo : Page
{
ObservableCollection<string> collection = new ObservableCollection<string>();
public DragDropDemo()
{
this.InitializeComponent();
collection.Add("seek");
collection.Add("stackoverflow");
collection.Add("place");
collection.Add("great");
collection.Add("a");
collection.Add("is");
collection.Add("help");
collection.Add("for");
GridView1.ItemsSource = collection;
}
}
注意:说“文本应居中对齐”,并不是要在一个单元格中居中显示一个项目:
例如:
假设我们有一个gridview,每行的最大列数为5,我们的句子又是:
“ stackoverflow是寻求帮助的好地方”
此刻可以看到:
stackoverflow is a great place
to seek for help
但是我希望它看起来像这样:
stackoverflow is a great place
to seek for help