0

2つの子コントロールを含むグリッドがあります。グリッドに常駐する単純なスタックパネルとリストボックスがあります。

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="5" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <ListBox Name="lstGroups" Grid.Row="0" />
        <StackPanel Grid.Row="2" />
<Grid>

問題は、リストボックスがグリッドに割り当てられた表示可能な画面領域を超えてレンダリングされることです。ListBoxが使用可能なスペースを占有しているが、すべてを表示するために垂直スクロールバーが必要な2番目の行を超えてレンダリングされないようにするにはどうすればよいですか?

4

1 に答える 1

0

これにはおそらく DockPanel を使用する必要があります。また、リストボックスの高さをプログラムで設定することもできますが、それはあまりきれいな方法ではありません。

<Window x:Class="MobilWPF.Windows.testWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="testWindow" Height="300" Width="300">
    <DockPanel>
        <StackPanel DockPanel.Dock="Bottom" >
            <TextBlock Text="blah"/>
        </StackPanel>
        <ListBox Name="lstGroups"  />
    </DockPanel>
</Window>


namespace MobilWPF.Windows
{
    /// <summary>
    /// Interaction logic for testWindow.xaml
    /// </summary>
    public partial class testWindow : Window
    {
        public testWindow()
        {
            InitializeComponent();

            for (int i = 0; i < 200; i++)
            {
                lstGroups.Items.Add(i.ToString()); 
            }
        }
    }
}
于 2012-08-06T19:48:10.863 に答える