我想綁定到我的ListBox的視口寬度。也就是說,內容區域的寬度,不包括邊框或滾動條:如何綁定到ListBox的視口寬度(即,沒有滾動條的寬度)?
- 當垂直滾動條可見時,我希望左邊框和滾動條之間的區域寬度;
- 當垂直滾動條不可見時,我想要左右邊框之間的區域寬度。
另外,我可以做一些事情,告訴我垂直滾動條是否可見。
這是爲了在列表框之外的控件 - 我想將它放在列表框的視口上方,並確保它始終與視口寬度相同。也就是說,我想將其寬度綁定到ListBox的視口寬度。
我想綁定到我的ListBox的視口寬度。也就是說,內容區域的寬度,不包括邊框或滾動條:如何綁定到ListBox的視口寬度(即,沒有滾動條的寬度)?
另外,我可以做一些事情,告訴我垂直滾動條是否可見。
這是爲了在列表框之外的控件 - 我想將它放在列表框的視口上方,並確保它始終與視口寬度相同。也就是說,我想將其寬度綁定到ListBox的視口寬度。
你想要做的是非常具體的ListBox
控制模板的內部。在代碼隱藏,你可以很容易地找到ScrollViewer
,然後你可以使用這些有用的特性:
控制目標控制的寬度。但是,這種緊密耦合是複合控件的特徵,如果您改爲覆蓋ListBox
控件模板並在開始時包含目標控件,則會發現您可以完全訪問ScrollViewer
及其來自XAML的有用屬性,並且可以將寬度與綁定沒有所有的問題,試圖保持獨立控制的原因。
我永遠不會想到這件事。好決定。 – 2011-04-14 12:40:12
您可以使用「綁定路徑=寬度,元素名稱= abc」。
,如果你只是想停靠在另一個頂部的控制,你可以使用電網以及
你甚至理解這個問題嗎?我不希望包含邊框和滾動條的ListBox的總寬度(和寬度將是錯誤的,無論如何,你必須使用ActualWidth)。 – 2011-04-14 12:37:57
可能Dup的:http://stackoverflow.com/questions/5526217/how-to-get-or-compute-actual-width-of-listbox-without-vertical-scrollbar-if-visib – dugas 2011-04-13 20:36:18
該解決方案使用{ RelativeSource FindAncestor},所以它只能在ListBox(例如在ItemTemplate中)嵌入的控件中,而不是在* outside *之外。 – 2011-04-13 20:52:04