簡體   English   中英

在Windows Phone中拖放

[英]drag and drop in windows phone

我正在嘗試實現拖放功能以排列列表框的內容。 我能夠拖動該項目。 當我嘗試將第二項拖動到第一項時,它會出現在第一項上方,但是當我嘗試將第一項拖動到第二項時,則第一項進入第二項之下。 我也無法趕上下落,所以我可以安排物品。

有人可以幫我嗎?

這是我正在使用的代碼示例

 <ListBox Name="lstBoxImages" ScrollViewer.VerticalScrollBarVisibility="Disabled">
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <toolkits:WrapPanel 
                                Width="450" 
                                Height="Auto" 
                                ItemWidth="225" 
                                ItemHeight="Auto"/>
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
            <ListBox.ItemTemplate>
                <DataTemplate>

                    <StackPanel Orientation="Horizontal">
                        <Image Source="{Binding Source}" Height="200" Width="200" MouseMove="MouseMoving">
                            <i:Interaction.Behaviors>
                            <el:MouseDragElementBehavior ConstrainToParentBounds="False"/>
                        </i:Interaction.Behaviors>

                        </Image>
                    </StackPanel>


                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

后面的代碼:

protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        List<ImageInfo> lstImages = new List<ImageInfo>();
        lstImages.Add(new ImageInfo() { ImageID = 1, Source = "Images/4.png" });
        lstImages.Add(new ImageInfo() { ImageID = 2, Source = "Images/2.png" });
        lstImages.Add(new ImageInfo() { ImageID = 3, Source = "Images/4.png" });
        lstImages.Add(new ImageInfo() { ImageID = 4, Source = "Images/2.png" });
        lstImages.Add(new ImageInfo() { ImageID = 5, Source = "Images/4.png" });
        lstImages.Add(new ImageInfo() { ImageID = 6, Source = "Images/2.png" });

        lstBoxImages.ItemsSource = lstImages;

    }

    private void MouseMoving(object sender, System.Windows.Input.MouseEventArgs e)
    {
        Image realSender = (Image)sender;
        int zIndex = Canvas.GetZIndex(realSender);
        Canvas.SetZIndex(realSender, zIndex++);
    }

我的信息課是:

public class ImageInfo
{
    private int _ImageID;
    private string _Source;

    public string Source
    {
        get { return _Source; }
        set { _Source = value; }
    }

    public int ImageID
    {
        get { return _ImageID; }
        set { _ImageID = value; }
    }
}

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
xmlns:el="clr-namespace:Microsoft.Expression.Interactivity.Layout;assembly=Microsoft.Expression.Interactions"

您可以嘗試從Bewise手機控件工具箱中控制可訂購列表。
此外,用於Windows Phone的Telerik RadControls的DataBoundListBox也支持項目重新排序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM