2017-06-09 3 views
1

私のアプリケーションでは、画面の下部に表示するリストボックスが必要です。リストボックスは(メニュー項目を介して)表示されず、高さを変更可能でなければなりません。私はそれをグリッドに配置し、グリッドスプリッタを使用して、意図したとおりに動作するリサイズ部分を行いました。グリッドスプリッター付きのリストボックスは、スクロールバーを表示する代わりにサイズを変更します

私の問題は、以前に手動でサイズを変更していないと、リストボックスにログが表示されると、このリストボックスにスクロールバーが表示されず、代わりに拡大が開始され、より多くのスペースが必要になります。グリッドスプリッターを使用してサイズ変更をトリガーすると、すべてが意図どおりに機能します。これをやめるために私は何ができますか?

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 

    <ContentControl Grid.Row="0" 
        Grid.Column="1" /> 

    <GridSplitter Grid.Row="1" 
        Height="5" 
        HorizontalAlignment="Stretch" 
        Visibility="{Binding ShowLogWindow, 
             Converter={StaticResource Bool2Vis}}" /> 

    <ListBox Grid.Row="2" 
      VerticalAlignment="Stretch" 
      ItemsSource="{Binding Toolbox.LogEntries}" 
      MinHeight="50" 
      Visibility="{Binding ShowLogWindow, 
            Converter={StaticResource Bool2Vis}}" /> 
</Grid> 
+2

3番目の行に 'Height =" Auto "を設定しないでください。 – Clemens

答えて

2

50または任意の一定の高さあなたはそれを持っているしたい第3 RowDefinition(またはListBox自体)のHeight設定します。

Autoは、コンテンツのサイズを意味します。つまり、最後の行の高さは、ListBoxが大きくなると大きくなります。これは明らかにあなたが望むものではありません。

+0

それは完全にそれでした!私は高さを設定する必要がありますリサイズを防ぐ...それを試してみる必要があります..ありがとう! – Shimrod

+0

ちょうど情報を追加するためには、必要に応じて色を隠すことができるように、行の高さを設定するスタイル(およびトリガ)を使用する必要がありました。 – Shimrod

関連する問題