2016-12-12 5 views
0

ListViewの列数を画面のメトリックに変更するには、次のコードを使用しています。C#WPF ListView UniformGrid列を設定する

private void Window_SizeChanged(object sender, SizeChangedEventArgs e) 
    { 
     this.SizeChanged += OnWindowSizeChanged; 
    } 


    protected void OnWindowSizeChanged(object sender, SizeChangedEventArgs e) 
    { 
     double newWindowHeight = e.NewSize.Height; 
     double newWindowWidth = e.NewSize.Width; 
     double prevWindowHeight = e.PreviousSize.Height; 
     double prevWindowWidth = e.PreviousSize.Width; 

     LabelXY.Content = newWindowHeight.ToString() + newWindowWidth.ToString(); 
    } 

xamlで列を設定します。

<UniformGrid Columns="5"/> 

enter image description here

すべての罰金、5列があります。

enter image description here

しかし、ウィンドウ幅が未満1200ピクセルであれば、私は4列をしたいです。

私は最初にそれを拘束するようになったが、このように私は失敗した。

 <UniformGrid Columns="{Binding Path=ColumnNum}"/> 

したがって、バインドされていない場合は、プログラムでC#で列数を変更できますか?おかげで...

+0

でwrappanelを使用しようか? –

+0

はい、私は試みましたがあまりにも敏感です。したがって、幅が1200px - 1300pxの5つの列が、1250pxの場合は4つの列に直接移動し、周りには多くのスペースがあります。ウィンドウの幅を1200ピクセル未満にするには、4列が必要です。 –

+0

わかりませんが、[Liz answer](http://stackoverflow.com/a/5573916/5588347)をご覧ください。 –

答えて

0

<ListView.ItemsPanel> 
    <ItemsPanelTemplate> 
     <WrapPanel Orientation="Horizontal"/> 
    </ItemsPanelTemplate> 
</ListView.ItemsPanel> 

を入れて、Listview ScrollViewer.HorizontalScrollBarVisibility="Disabled"

<ListView ItemsSource="{Binding Customers}" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
関連する問題