2009-11-24 26 views

回答

2

我最好的猜測是你必須捕獲MouseLeftButtonDown事件並檢測拖動。如果不拖動,則取消該事件。如果檢測到拖動,則捕獲類變量中的起始位置。在MouseMove中,將鼠標位置與開始位置進行比較,並確定是否增加或減少Grid Splitter的位置。

爲了得到這個工作,我認爲你需要根據上面的遞增/遞減決定,以編程方式調整左側網格列的寬度。

我會好奇,看看這是怎麼回事。

+0

謝謝,喬爾。你所說的是公平的,我可能必須這樣。然而,現在,在將任何標記標記爲「已接受」之前,我還在等待其他答案。 – 2009-11-24 21:26:42

+0

這是一個相關的答案,所以我將其標記爲已接受。我有點期待有其他建議。 – 2009-11-30 17:35:00

0

GridSplitter暴露了DragIncrement屬性,該屬性設置用戶必須拖動鼠標來調整行或列大小的最小距離。因此,你可以這樣做:

<GridSplitter Grid.Row="1" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" DragIncrement="5"/> 

編輯:我剛剛意識到你在談論Silverlight。看起來像DragIncrement屬性只在WPF中可用。對不起你的運氣。

+0

是的,DragIncrement屬性是我想要的,但不幸的是,在Silverlight 3中,我們只有一個值爲1的私有常量。 – 2010-01-04 13:18:10