没有背景WPF的ItemsControl

本文关键字:ItemsControl WPF 背景 | 更新日期: 2023-09-27 18:25:43

我想问你,是否可以让ItemsControl没有背景(x:null),不透明。

我收集了一些数据,这些数据在DataTemplate的帮助下显示在ItemsControl中。数据模板中的一些数据被折叠,我需要能够在itemscontrol后面的另一个控件上点击。

以下是我的意思:

<Button x:Name="bt_behind"></Button>
<ItemsControl ItemsSource="{Binding ListOfData}" Background="{x:Null}">
        <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal" Background="{x:Null}"></StackPanel>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate DataType="{x:Type Class:Data}">
                     <Grid Width="100" Background="{x:Null}">
                          <Rectangle x:Name="rec" Fill="Red" Height="100" Visibility="Collapsed">
                     </Grid>
                     <DataTemplate.Triggers>
                        <DataTrigger Binding="{Binding IsVisible}" Value="true">
                            <Setter TargeName="rec" Property="Visibility" Value="Visible"/>
                        </DataTrigger>
                     <DataTemplate.Triggers>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
</ItemsControl>

示例,其中项目3部分折叠并标记区域,其中为空位置

我将所有地方的背景设置为null(也可以尝试itemcontainerstyle),但没有成功。ItemsControl后面的On按钮仍然无法单击。我认为ItemsControl有透明的事件背景,但有可能删除这个背景吗?

谢谢你的建议,对不起我的英语:)

-pav-

没有背景WPF的ItemsControl

正如我所说,一切正常。修复XAML:

<Grid>
    <Button x:Name="bt_behind" Content="behind" Click="Bt_behind_OnClick"/>
    <ItemsControl ItemsSource="{Binding ListOfData}" Background="{x:Null}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal" Background="{x:Null}"></StackPanel>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate DataType="{x:Type local:Data}">
                <Grid Width="100" Background="{x:Null}">
                    <Rectangle x:Name="rec" Fill="Red" Height="100" Visibility="Collapsed"/>
                </Grid>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding IsVisible}" Value="true">
                        <Setter TargetName="rec" Property="Visibility" Value="Visible"/>
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Grid>

只是为了测试。

private void Bt_behind_OnClick(object sender, RoutedEventArgs e)
{
    MessageBox.Show("");
}