2011-11-14 84 views
0

我有一個網格。我想計算任何2個單元之間的距離。如何找出C#中兩個單元格之間的距離?

例:

CELL1:(0,1),小區2:(2,2);現在距離是row_distance = 2-0 = 2,col_distance = 2-1 = 1;

我想查找row_distance和col_distance。 我認爲一個解決方案如下:

鼠標左鍵按下第一個單元格(PreviewMouseLeftButtonDown),然後在第二個單元格(PreviewMouseLeftButtonUn)鼠標左鍵向上按鈕。

<Grid ShowGridLines="True" PreviewMouseLeftButtonDown="grid1_PreviewMouseLeftButtonDown" PreviewMouseLeftButtonUp="grid1_PreviewMouseLeftButtonUp"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="52*" /> 
       <ColumnDefinition Width="50*" /> 
       <ColumnDefinition Width="48*" /> 
      </Grid.ColumnDefinitions> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="33*" /> 
       <RowDefinition Height="39*" /> 
       <RowDefinition Height="51*" /> 
      </Grid.RowDefinitions> 
     </Grid> 

但我不能能夠實現的功能grid1_PreviewMouseLeftButtonDown grid1_PreviewMouseLeftButtonUp。我將不得不如果有人能幫助實現這些功能

請讓我知道,如果有其他的解決辦法

回答

0

MSDN報價:

這是一個附加事件。 WPF將附加事件實現爲路由事件。附加事件基本上是一種XAML語言概念,用於引用事件,該事件可以在未定義該事件的對象上處理,而WPF通過還允許該事件遍歷路由來擴展該事件。附加事件在代碼中沒有直接處理語法; 要在代碼中爲路由事件附加處理程序,請使用指定的Add * Handler方法。有關詳情,請參閱Attached Events Overview

0

該行距離

int getRowDistance(cell cell1, cell cell2){ //IDK if the cells are objects/structs 
    int i,offsetWidth; 
    for (i = 0;i < cell1.rowNumber; i++){ //This loop will add the width from 0 to the beginning of the first cell 

     cell offCell = cellAtRow(i); 
     cellWidth += offCell.width; 

    } 

    int width = 0; 
    for (i = cell1.rowNumber;i < cell2.rowNumber; i++){ //This loop will add the width between the two cells 

     cell tempCell = cellAtRow(i); 
     width += tempCell.width; 

    } 
    return width - offsetWidth; 
} 

我希望這是有道理的。從我的問題得出的結論來看,這就是你要找的。對不起,這是純C語言,對我來說是最容易做到的。

相關問題