首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WPF ListView 限制欄位寬度:附加屬性實作 MinWidth/MaxWidth

     編輯:關於.NET

問題

WPF ListView (GridView) 內建不支援欄位最小/最大寬度,使用者可將欄拖曳至寬度為 0 導致消失。

解決方案:ListViewLayoutManagerLib

封裝一組附加屬性,監聽欄位調整事件並強制限制範圍。

使用步驟

  1. 引用 ListViewLayoutManagerLib 專案。
  2. XAML 引入命名空間:xmlns:listViewMgr="clr-namespace:ListViewLayoutManagerLib;assembly=ListViewLayoutManagerLib"
  3. 於 ListView 啟用:listViewMgr:ListViewLayoutManager.Enabled="True"
  4. 於需限制的 GridViewColumn 設定:listViewMgr:RangeColumn.MinWidth="50"、MaxWidth="200"

XAML 範例

<ListView listViewMgr:ListViewLayoutManager.Enabled="True">
    <ListView.View>
        <GridView AllowsColumnReorder="True">
            <GridViewColumn listViewMgr:RangeColumn.MinWidth="50"
                            Header="MinWidth50" Width="150"/>
            <GridViewColumn listViewMgr:RangeColumn.MinWidth="100"
                            listViewMgr:RangeColumn.MaxWidth="200"
                            Header="Width100-200" Width="150"/>
            <GridViewColumn Header="Normal" Width="150"/>
        </GridView>
    </ListView.View>
</ListView>

此庫內部透過 DependencyPropertyDescriptor 監聽 GridViewColumn.Width 變更,並在超出範圍時校正回邊界值,達到無感知限制效果。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved