代码之家  ›  专栏  ›  技术社区  ›  StefanHa

ItemControls中的项自动调整大小

  •  1
  • StefanHa  · 技术社区  · 15 年前

    我有下一个问题。我有一个用xaml定义的ItemsControl。

     <Grid>
         <Grid.RowDefinitions>
             <RowDefinition Height="50" />
             <RowDefinition Height="50" />
         </Grid.RowDefinitions>
         <Button Grid.Row="0" ></Button>
         <ItemsControl Grid.Row="1" x:Name="ItemsControl"></ItemsControl>
     </Grid>
    

    在代码背后,我有一个项目控件被按钮填充。

    public Window1()
            {
                InitializeComponent();
                var list = new List<Button>();
                list.Add(new Button() { Name = "btn1", Visibility = Visibility.Visible});
                list.Add(new Button() { Name = "btn2", Visibility = Visibility.Collapsed});
                list.Add(new Button() { Name = "btn3", Visibility = Visibility.Collapsed});
                ItemsControl.ItemsSource = list;
            }
    

    现在,当按钮被渲染时,高度非常小。我希望按钮以ItemsControl的最大高度呈现。有办法吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Community Mohan Dere    8 年前

    试试这个答案,我试了一下,效果很好:D

    Stretching controls to fill ItemsControl

    别忘了 <RowDefinition Height="*" />

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="50" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Button Grid.Row="0" ></Button>
        <ItemsControl Grid.Row="1" x:Name="ItemsControl">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid Columns="1" />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
        </ItemsControl>
    </Grid>
    
    推荐文章