我有一個包含2行和2列的網格。託管一個Windows窗體主機控件的每個單元格。我想在用戶單擊任何單元格時捕獲所選單元格。我已經搜索並發現沒有「點擊」事件,但我可以使用具有類似結果的「MouseDown」事件。但是現在我被卡住了,因爲你會認爲必須有一種更簡單的方法,比如'GetCurentRow'和'GetCurrentColumn'來捕獲選中的單元格,但是沒有。WPF - 獲取當前單元格的詳細信息
我想要做的是在網格的特定單元格中獲取子元素。 我試着下面的代碼,但我點擊哪個小區中沒有的事,我總是得到0的行和列:
void InnerGridToContainWindowsFormsHost_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
var element = (UIElement)e.Source;
int c = Grid.GetColumn(element);
int r = Grid.GetRow(element);
}
有沒有獲得所選擇的任何方式/單擊的單元格的細節或細胞內的孩子嗎?
'每個單元託管一個Windows窗體主機控件' - 你的winforms包含什麼? –
每個單元格包含一個WindowsFormHost對象,該對象依次「託管」一個ActiveX控件。我的WPF表單包含一個主柵格,其子項和其中一個子項是另一個包含4個WindowsFormHost對象的柵格。 –
一個空的'Grid'單元就是那個...空的。如果您要在每個單元格中設置一個'Fill'屬性設置爲'Rectangle',然後在單元格中單擊,您會發現'Grid.GetColumn'和'Grid.GetRow'按預期工作。我不知道爲什麼你的'WindowsFormHost'對象沒有做同樣的工作。 – Sheridan