2012-09-26 100 views
4

我的窗口中有一個ListView,它有許多列。部分或全部列不能由用戶調整大小,因爲它們已經具有最佳寬度並且意外調整大小隻會使情況變得更糟。現在對這個問題有一些答案,但是所有這些問題都以重新設置控制權結束。不幸的是,我最終得到了大量的XAML代碼,這是高度平臺/主題特定的。當我使用Blend創建默認樣式的副本時,我會得到很多隻能在Win7 Aero上工作的漸變等,但不會在XP主題中出現,或者會出現任何問題。禁用ListView中列的大小調整

因此,更換控件的整個樣式不是一種選擇。 (它幾乎沒有真的。)

我已經確定了需要隱藏的部分,它被命名爲「PART_HeaderGripper」。我以前做過這樣的事情,在代碼隱藏下面的代碼去除一個進度條運行輝光等部位:

var glow = progressBar.Template.FindName("PART_GlowRect", progressBar) as FrameworkElement; 
if (glow != null) glow.Visibility = visibility; 

但由於Template.FindName沒有這個不以GridViewColumnHeader工作找到任何東西(返回null)。我很確定在運行時必須有一種方法來修改視覺效果。但我現在無法弄清楚。任何想法?

回答

7

測試和體必須是30個字符

<GridViewColumnHeader Content="Value" IsHitTestVisible="False"/> 
+0

'GridViewColumnHeader.IsHitTestVisible = FALSE'不工作,列不能調整大小和鼠標光標不改變。但是你不能點擊列進行排序了。所以在某些情況下它可能是可以接受的。 (對我來說是這樣,但是我會等待其他解決方案出現。) – ygoe

+0

謝謝!這似乎是迄今爲止最好的答案,並且易於風格化。 '<形式的TargetType = 「{x:類型GridViewColumnHeader}」> ' 其它解決方案似乎需要覆蓋整個模板並省略調整大小「拇指」。堅果IMO。 – Ternary