用户控件的动态占位符

时间:2014-02-17 15:23:57

标签: c# wpf controls

我有一个绑定到ObservableCollection的ItemsControl。 现在,此集合中的项目以3x5项目(3行,每项5项)的网格显示,允许一次显示总共15个项目。 想象一下这个系列没有15件,但有14件。这将创造一个空位。 如何用控件填充这个空白点(在我的情况下是一个图像)? 请记住,这需要是动态的。如果我在集合中有10个项目,我将需要5个“占位符”才能显示。

提前致谢!

当前代码:

<UserControl>
    <Grid>
        <ItemsControl ItemsSource="{Binding Programs}" Name="ItemsControl">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid VerticalAlignment="Center" HorizontalAlignment="Center" Columns="5" />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Button Content="{Binding Text}" Margin="5" Background="Transparent" Foreground="White" Width="128"
                            Focusable="False" Command="{Binding ClickCommand}">
                        <Button.RenderTransform>
                            <TransformGroup>
                                <ScaleTransform />
                            </TransformGroup>
                        </Button.RenderTransform>
                        <Button.Template>
                            <ControlTemplate TargetType="Button">
                                <Grid>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="*" />
                                        <RowDefinition Height="Auto" />
                                    </Grid.RowDefinitions>

                                    <Image Grid.Row="0" Source="{Binding Image}" Height="128" />
                                    <ContentPresenter Grid.Row="1" HorizontalAlignment="Center" Margin="3,10" />
                                    <Rectangle Grid.Row="0" Fill="{TemplateBinding Background}" />
                                    <Rectangle Grid.Row="1" Fill="{TemplateBinding Background}" />
                                </Grid>
                            </ControlTemplate>
                        </Button.Template>
                    </Button>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Grid>
</UserControl>

预览: http://i58.tinypic.com/29nj9eo.png

0 个答案:

没有答案