DataGridColumn.IsFrozen 속성


열을 가로로 스크롤할 수 없는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the column is prevented from scrolling horizontally.

 property bool IsFrozen { bool get(); };
public bool IsFrozen { get; }
member this.IsFrozen : bool
Public ReadOnly Property IsFrozen As Boolean

속성 값


열을 가로로 스크롤할 수 없으면 true이고, 그렇지 않으면 false입니다.true if the column cannot be scrolled horizontally; otherwise, false. 등록된 기본값은 false입니다.The registered default is false. 값에 영향을 줄 수 있는 요소에 대한 자세한 내용은 DependencyProperty를 참조하십시오.For information about what can influence the value, see DependencyProperty.


다음 예제에서 열 고정 "를 선택 하면 열을 고정 하는 방법을 보여 줍니다는 ContextMenu합니다.The following example shows how to freeze a column when "Freeze Column" is selected from the ContextMenu. 열은 고정된 된 열에 포함 하기 위해 왼쪽으로 이동 됩니다.Columns are moved to the left in order to be included in the frozen columns.

<!--Defines the handlers for when the FreezeColumnCommand is executed-->
    <CommandBinding Command="{x:Static local:Window1.FreezeColumnCommand}" Executed="CommandBinding_Executed" />
<!--Defines the context menu for the ColumnHeaders and attaches the FreezeColumnCommand-->
    <ContextMenu x:Key="ColumnHeaderMenu" IsEnabled="True"  >
        <MenuItem Header="Freeze Column" IsEnabled="True" Command="{x:Static local:Window1.FreezeColumnCommand}"
                  CommandTarget="{Binding RelativeSource={RelativeSource AncestorType=Popup}, Path=PlacementTarget}" 
                  CommandParameter="{Binding ElementName=DG1, Path=CurrentColumn.DisplayIndex}" />

    <!--Creates a new DataGrid with a context menu for the column headers-->
    <DataGrid Name="DG1" ItemsSource="{Binding}"  >
        <DataGrid.ColumnHeaderStyle >
            <Style TargetType="DataGridColumnHeader">
                <Setter Property="ContextMenu" Value="{StaticResource ColumnHeaderMenu}" />
public partial class Window1 : Window
    public static RoutedUICommand FreezeColumnCommand = new RoutedUICommand();

    public Window1()
        //GetData connects to the database and returns the data in a table.
        AdventureWorksLT2008DataSet.SalesOrderDetailDataTable dt = GetData();

        DG1.DataContext = dt;
Class Window1
    Public Shared FreezeColumnCommand As New RoutedUICommand()

    Public Sub New()

        'GetData connects to the database and returns the data in a table.
        Dim dt As AdventureWorksLT2008DataSet.SalesOrderDetailDataTable = GetData()

        DG1.DataContext = dt
    End Sub
    private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
       //Get the column header that started the command and move that column left to freeze it.
       System.Windows.Controls.Primitives.DataGridColumnHeader header = (System.Windows.Controls.Primitives.DataGridColumnHeader)e.OriginalSource;
       if (header.Column.IsFrozen ==true)
           header.Column.DisplayIndex = DG1.FrozenColumnCount;
Private Sub CommandBinding_Executed(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
    'Get the column header that started the command and move that column left to freeze it.
    Dim header As System.Windows.Controls.Primitives.DataGridColumnHeader = DirectCast(e.OriginalSource, System.Windows.Controls.Primitives.DataGridColumnHeader)
    If header.Column.IsFrozen = True Then
        Exit Sub
        header.Column.DisplayIndex = DG1.FrozenColumnCount
        DG1.FrozenColumnCount += 1

    End If
End Sub


IsFrozen 열 고정을 사용할 수 없습니다.IsFrozen cannot be used to freeze a column. 대신, 설정 된 FrozenColumnCount 속성입니다.Instead, set the FrozenColumnCount property. 최대 지정 된 열 맨 왼쪽 열은 FrozenColumnCount 번호 위치에 고정 됩니다.The leftmost columns up to the column that is specified by the FrozenColumnCount number will freeze in place.

적용 대상

추가 정보