1

3つのボタンがあるグリッドを含むリストボックスで問題が発生しています。このグリッド内にボタンのスワップ機能を実装しました。私の問題は、ボタンを左から右にドラッグし、それが別のボタンと重なると、ドラッグ時にドラッグボタンがその後ろに表示されることですが、ボタンを右から左にドラッグすると、これは発生しません(正しい機能)。これが私が使用しているXamlコードです

<Grid x:Name="ContentPanel" Grid.Row="1">
            <ListBox Height="Auto" Name="listbox" VerticalAlignment="Top" ItemsSource="{Binding}" Background="#00995B5B" DataContext="{Binding}" d:LayoutOverrides="Width" HorizontalAlignment="Stretch"  HorizontalContentAlignment="Stretch">
                <ListBox.ItemContainerStyle>
                    <Style TargetType="ListBoxItem">
                        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                    </Style>
                </ListBox.ItemContainerStyle>
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid Height="300"  Background="{Binding RowBackgroundBrush}">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="1*" ></ColumnDefinition>
                                <ColumnDefinition Width="1*" ></ColumnDefinition>
                                <ColumnDefinition Width="1*" ></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <Button Tag="{Binding IndexListItem1.PageIndex}"  Foreground="Black" Content="1"   Grid.Column="0" HorizontalAlignment="Center"  Margin="10,9,0,0" Width="133" d:LayoutOverrides="GridBox">
                                <toolkit:GestureService.GestureListener>
                                    <toolkit:GestureListener DragDelta="GestureListener_DragDelta" DragStarted="GestureListener_DragStarted" DragCompleted="GestureListener_DragCompleted" Hold="GestureListener_Hold"/>
                                </toolkit:GestureService.GestureListener>

                            </Button>
                            <Button Tag="{Binding IndexListItem2.PageIndex}" Content="2"    Grid.Column="1" HorizontalAlignment="Center" Margin="10,9,0,0" Width="133"  d:LayoutOverrides="GridBox">
                                <toolkit:GestureService.GestureListener>
                                    <toolkit:GestureListener DragDelta="GestureListener_DragDelta" DragStarted="GestureListener_DragStarted" DragCompleted="GestureListener_DragCompleted" Hold="GestureListener_Hold"/>
                                </toolkit:GestureService.GestureListener>

                            </Button>
                            <Button Tag="{Binding IndexListItem3.PageIndex}" Grid.Column="2" Content="3"  Foreground="Red" Margin="10,9,0,0"  Width="133" HorizontalAlignment="Center"  d:LayoutOverrides="GridBox">
                                <toolkit:GestureService.GestureListener>
                                    <toolkit:GestureListener DragDelta="GestureListener_DragDelta" DragStarted="GestureListener_DragStarted" DragCompleted="GestureListener_DragCompleted" Hold="GestureListener_Hold"/>
                                </toolkit:GestureService.GestureListener>

                            </Button>
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </Grid>
4

1 に答える 1

1

のような値GestureListener_DragDeltaに設定を追加する場合は、正常に機能します。ドラッグが完了したときに値を設定することを忘れないでください。canvas.ZIndexProperty100Zindex0

于 2013-01-15T11:48:07.213 に答える