gpt4 book ai didi

c# - IsHitTestVisible=false 禁用 DataGrid 的滚动条

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:16 25 4
gpt4 key购买 nike

我想禁止选择 DataGrid,所以我将属性 IsHitTestVisible 设置为 false,但随后它也禁用了 ScrollBar .

如何通过仍然禁用 DataGrid 上的选择来启用滚动条?

我能做的一件事是:
我可以更改 DataGrid 上的选择颜色。问题是当我说 Trigger Property="DataGridRow.IsSelected" 时它不起作用。另一方面,如果我像这里说的那样说 TriggerProperty="DataGridCell.IsSelected" Row Selection in DataGrid , 它只选择第一列而不是整行。另外,如果我说背景的值是透明的,它不会在单元格中显示文本。请帮忙。

<DataGrid x:Name="DGRunInfoItems" IsHitTesVisible="False" IsReadOnly="True" ColumnWidth="*" FontSize="{StaticResource BRControlNormalFontSize}" ScrollViewer.VerticalScrollBarVisibility="Auto" HeadersVisibility="None" CanUserAddRows="False" ItemsSource="{Binding RunViewModel.RunInfoDataTable}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Header}">
<DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<Trigger Property="DataGridCell.IsSelected" Value="True">
<Setter Property="Background" Value="Transparent"/>
</Trigger>
</Style.Triggers>
<Style.Setters>
<Setter Property="FontWeight" Value="Bold"/>
</Style.Setters>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Value}"/>
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="MinHeight" Value="28"/>
</Style>
</DataGrid.RowStyle>
</DataGrid>

最佳答案

这终于奏效了。我通过删除 IsHitTestVisible 借助样式实现了它。如果它可以帮助这里的人,那就是解决方案。我对整个 DataGrid 应用了一种样式。请参阅 DataGrid.CellStyle。 (我从另一篇 StackOverflow 帖子中获得了此帮助,但找不到指向它的链接。)

<DataGrid x:Name="DGRunInfoItems"  IsReadOnly="True" ColumnWidth="*" FontSize="{StaticResource BRControlNormalFontSize}" ScrollViewer.VerticalScrollBarVisibility="Auto" HeadersVisibility="None" CanUserAddRows="False" ItemsSource="{Binding RunViewModel.RunInfoDataTable}" AutoGenerateColumns="False">
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<Trigger Property="DataGridCell.IsSelected" Value="True">
<Setter Property="BorderBrush">
<Setter.Value>
<SolidColorBrush Color="Transparent"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground"
Value="{DynamicResource
{x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="Transparent"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Header}" FontWeight="Bold">
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Value}"></DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="MinHeight" Value="28"/>
</Style>
</DataGrid.RowStyle>
</DataGrid>

关于c# - IsHitTestVisible=false 禁用 DataGrid 的滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54544828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com