我試圖找到一種方法來拖放列表框項目和國際象棋棋盤之間使用WPF &。我有一個左側的列表框和右側的棋盤。我怎樣才能拖動一個項目,然後拖入棋盤的一個或多個方格。然後點擊廣場,會顯示有關這裏的項目的一些信息。我很感激,如果有人能幫助我?謝謝大家。在列表框項目和國際象棋棋盤之間拖放
回答
嗨是一種方法,讓你在正確的方向
http://johnnblade.wordpress.com/2012/06/12/drag-and-drop-grid-control-row-devexpress-wpf/
讓我知道可能u有更多的問題
我的示例是一個網格,但你可以在其他控件上使用 – JohnnBlade 2012-07-23 08:02:33
謝謝,我認爲我的大問題是該物品如何可以容納多個方格。我該怎麼做? – 2012-07-23 08:21:57
這裏是我的高清完成..但我在這裏拖動文件從桌面到我的列表框
` public MainPage()
{
InitializeComponent();
CompositionTarget.Rendering +=new EventHandler(CompositionTarget_Rendering);
FileBoard.Drop += new DragEventHandler(FileBoard_Drop);
}
`
當拖動元素
void FileBoard_Drop(object sender, DragEventArgs e)
{
if (e.Data != null)
{
FileInfo[] files = e.Data.GetData(DataFormats.FileDrop) as FileInfo[];
foreach (FileInfo fi in files)
{
_files.Enqueue(fi);
}
}
}
創建使用CompositionTargetRendering u能雙端隊列文件
private void CompositionTarget_Rendering(Object sender, EventArgs e)
{
if (_files.Count != 0)
{
// Create a photo
FileInfo fi = _files.Dequeue();
}
}
,然後的ItemSource分配給烏爾板或下棋列表DATAinGrid
盒子項目...嘗試修改代碼我想你會得到它
這是舊的,但我發現了一個KISS解決方案。
使用TextBlocks或網格中的圖像創建您的棋盤網格。
爲要傳遞的數據創建一個模型。
在XML做到這一點:
<TextBlock x:Name="myname" x:Uid="myname" Grid.Row="0" Grid.Column="1" Margin="3" Text="{Binding myfield}" Style="{DynamicResource myStyle}" AllowDrop="True" Drop="Square_Drop"/>
<TextBlock x:Name="myname" x:Uid="myname" Grid.Row="1" Grid.Column="1" Margin="3" Text="{Binding myfield}" Style="{DynamicResource myStyle}" AllowDrop="True" Drop="Square_Drop"/>
//etc etc etc
<ListBox x:Name="myListBox" x:Uid="myListBox"
ItemContainerStyle="{DynamicResource myListBoxListItemStyle}" Margin="10"
DisplayMemberPath="myField"
PreviewMouseLeftButtonDown="List_PreviewMouseLeftButtonDown">
我會強烈建議您使用資源,將TextBlock /圖像正方形的造型。 (!一個白,一個黑)
然後在C#後面你將需要:
private void List_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (myListBox.SelectedItem != null)
{
ListBox parent = (ListBox)sender;
myModel data = parent.SelectedItem as myModel;
if (data != null)
{
DragDrop.DoDragDrop(parent, data, DragDropEffects.Move);
}
}
}
private void Square_Drop(object sender, DragEventArgs e)
{
MyModel data = e.Data.GetData(typeof(MyModel)) as MyModel;
TextBlock tb = sender as TextBlock;
tb.DataContext = data;
//Add any database update code here
refreshInterface();
}
- 1. 國際象棋棋盤代表 - 引擎
- 2. 0x88國際象棋棋盤代表
- 3. 國際象棋棋盤人口
- 4. Java主教國際象棋棋盤
- 5. 在NxM國際象棋棋盤上放置皇后
- 6. 在屏幕上放置Java國際象棋棋盤?
- 7. 國際象棋:獲得所有合法國際象棋棋子
- 8. 國際象棋棋盤使用JavaScript和DOM
- 9. Python的國際象棋項目
- 10. 在wxpython中建模國際象棋棋盤
- 11. 在Android中創建一個國際象棋棋盤
- 12. 沒有出現在國際象棋棋盤上的圖像 - PHP
- 13. 在8x8國際象棋棋盤上的5個皇后
- 14. 「跟隨國際象棋」直播國際象棋遊戲如何?
- 15. 國際象棋棋局職位
- 16. 使用Javascript的簡單國際象棋棋盤
- 17. 國際象棋棋盤上的按鈕座標
- 18. 使用JavaScript設計國際象棋棋盤
- 19. 使用Windows窗體創建國際象棋棋盤
- 20. 使用backtracking在8x8國際象棋棋盤上執行騎士之旅
- 21. HTML5中國象棋棋子和棋子
- 22. 如何在國王的最短路徑的國際象棋棋盤上做BFS?
- 23. 爪哇國際象棋
- 24. 國際象棋negamax功能
- 25. Java國際象棋桌
- 26. Html5拖放unicode棋盤
- 27. 如何使用jquery添加顏色選項作爲國際象棋棋盤?
- 28. 沒有僞類的國際象棋表
- 29. 國際象棋+使用表格
- 30. 與socket.io和uci玩國際象棋
謝謝,我想我最大的問題是項目如何能夠持有多單廣場 – 2012-07-23 08:18:26