Как включить перетаскивание на UWP Pivot Control - PullRequest
0 голосов
/ 25 февраля 2019

Мне очень нравится Pivot Control и то, как вы можете перемещаться между страницами на сенсорном экране.Он реагирует как элемент управления Tab и работает очень хорошо.Моя проблема в том, что я хотел бы перетаскивать и изменять порядок элементов.Любая помощь будет принята с благодарностью.Вот код, который у меня есть для пивота.

<Pivot x:Name="PivotMain" CanDrag="True" AllowDrop="True" FontFamily="Segoe UI" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,0,0" BorderBrush="Black"  >
                <Pivot.HeaderTemplate>
                    <DataTemplate>
                        <Grid Margin="0,0,0,0">
                            <TextBlock Text="{Binding}" FontSize="13" Margin="0,0,0,0" />
                        </Grid>
                    </DataTemplate>
                </Pivot.HeaderTemplate>
                <PivotItem x:Name="Main" Header="Home" CanDrag="True" FontSize="11" Margin="10,10,10,10" FontFamily="Segoe UI" HorizontalAlignment="Stretch">
                    <WebView x:Name="Home" DefaultBackgroundColor="Transparent" NavigationCompleted="NavigationCompleted"  NewWindowRequested="NewWindowRequested" VerticalAlignment="Stretch" />
                </PivotItem>
            </Pivot>

1 Ответ

0 голосов
/ 26 февраля 2019

Pivot контроль наследуется от ItemsControl, но не ListViewBase.Таким образом, он не содержит CanDragItems CanReorderItems свойства, вы не можете изменить их порядок как ListView.Pivot имеет свойство ItemsSource, это означает, что вы можете связать с ObservableCollection.и переупорядочить его с переупорядочением источника данных.

<Pivot
    x:Name="PivotMain"
    Margin="0,0,0,0"
    HorizontalAlignment="Stretch"
    VerticalAlignment="Stretch"
    AllowDrop="True"
    BorderBrush="Black"
    FontFamily="Segoe UI"
    >
    <Pivot.ItemTemplate>
        <DataTemplate>
            <PivotItem
                CanDrag="True"
                FontFamily="Segoe UI"
                FontSize="11"
                Header="{Binding}"
                >
                <Frame />
            </PivotItem>
        </DataTemplate>
    </Pivot.ItemTemplate>
    <Pivot.HeaderTemplate>
        <DataTemplate>
            <Grid Margin="0,0,0,0">
                <TextBlock
                    Margin="0,0,0,0"
                    FontSize="13"
                    Text="{Binding}"
                    />
            </Grid>
        </DataTemplate>
    </Pivot.HeaderTemplate>
</Pivot>

Код позади

 ObservableCollection<string> Items;
 public MainPage()
 {
     Items = new ObservableCollection<string>() { "first", "second", "third", "forth" };
     PivotMain.ItemsSource = Items;
     this.InitializeComponent();
 }

Переупорядочить

var _timer = new Timer(async _ =>
{
    Random r = new Random();
    var randomIndex = r.Next(0, Items.Count - 1);
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => {
        Items.Insert(4, Items[randomIndex]);
        Items.RemoveAt(randomIndex);
    });
}
, null, 0, 1000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...