2016-04-04 16 views
0

2行のグリッドを含むユーザーコントロールがあります。各行にリストボックスがあります。問題は、アイテムがリストボックスに追加されるとコントロールがただちに展開し続けるので、2行目のリストコントロールとリストアイテムがもう見えないようにすることです。Wpfリストボックスのサイズ変更の問題

リストボックスコントロールが高さをハードコードしないで展開しないようにするにはどうすればよいですか?各行は等しいサイズでなければならず、ユーザーがウィンドウのサイズを変更するときにコントロールをサイズ変更する必要があります。

私は多くのものと異なるコンテナを試しましたが、まだ問題を解決していません。

例コード:

<ScrollViewer HorizontalScrollBarVisibility="Visible"> 
     <DockPanel LastChildFill="True" > 
      <Grid DockPanel.Dock="Right"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="Auto" /> 
        <ColumnDefinition Width="Auto" /> 
        <ColumnDefinition Width="Auto" /> 
        <ColumnDefinition Width="Auto" /> 
       </Grid.ColumnDefinitions> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="Auto"/> 
        <RowDefinition Height="Auto" /> 
       </Grid.RowDefinitions> 
       <GroupBox Header="Allowed Countries" Grid.Column="0" Grid.Row="0"> 
        <ListBox VerticalAlignment="Top" > 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
        </ListBox> 
       </GroupBox> 
       <GroupBox Header="Allowed Languages" Grid.Column="0" Grid.Row="1"> 
        <ListBox VerticalAlignment="Top" > 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
         <ListBoxItem Content="Item 1" /> 
        </ListBox> 
       </GroupBox> 
      /Grid> 
     </DockPanel> 
</ScrollViewer> 

リストボックスの項目は、この例では、ハードコードされているが、私は解決リサイズの問題を取得するときには、実行時にバインドされます。ドックパネルは、ユーザーコントロールのグリッド以外のコントロールがあるために使用されます。

私は間違ったコントロール/コンテナを使用していますか?

答えて

0

最後にWPFで作業して以来、しばらくしていますが、私はと答えています。あなたが記述している動作はScrollViewerコントロールの不具合です。

ここで考えているのは、ScrolllViewerコントロールは、WPFがDockpanelの高さにハード制限を設けていないことを意味します。そのように(そしてその子コントロール)は、親ウィンドウ。

0

グリッド行の高さを(usercontrol/2の高さ)に設定して問題を解決しました。

関連する問題