我有一个WPF DataGrid,我需要在DataGrid中选择一些行。完成选择后,蓝色高线仍然在行上,我无法弄清楚如何摆脱它。我尝试点击其他地方,但蓝色的高线仍然在行。如何取消高线WPF DataGrid行?
0
A
回答
0
虽然我不知道你想做什么,你可以控制与重新定义DataGridCell和DataGridRow风格海莱。我会告诉你一个例子,这可能是也可能不是你想做的事情。我希望它对你有帮助。
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
<Style.Triggers>
<Trigger Property="IsSelected"
Value="True">
<Setter Property="BorderThickness"
Value="0" />
</Trigger>
<Trigger Property="IsFocused"
Value="False">
<Setter Property="Background"
Value="Transparent" />
<Setter Property="Foreground"
Value="Black" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
<DockPanel>
<TextBox DockPanel.Dock="Top"></TextBox>
<DataGrid ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding}" />
</DataGrid.Columns>
</DataGrid>
</DockPanel>
</Window>
1
可以处理该事件中隐藏文件代码IsKeyboardFocusWithinChanged在设置的SelectedItem为null这样的 -
private void dg_IsKeyboardFocusWithinChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (!(bool)e.NewValue)
{
(sender as DataGrid).SelectedItem = null;
}
}
XAML文件:
<DataGrid x:Name="dg" IsKeyboardFocusWithinChanged="dg_IsKeyboardFocusWithinChanged"/>
如果你不想让在你的数据网格中选择边框,你需要重写System.HighlightBrush并将其添加到你的数据网格资源是这样的 -
<DataGrid>
<DataGrid.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
</DataGrid.Resources>
<DataGrid>
相关问题
- 1. WPF DataGrid中隐藏RowDetails或取消行
- 2. WPF Datagrid:取消排序事件(WPF Bug?)
- 3. WPF Toolkit DataGrid - 行重叠(行高问题)
- 4. WPF DataGrid行高度符合Datagrid的高度,而不会滚动
- 5. 如何查找Wpf DataGrid行
- 6. 如何抵消行高基线?
- 7. 如何防止在WPF DataGrid中取消选择?
- 8. 如何在WPF中取消Datagrid selection changed事件?
- 9. wpf datagrid总行
- 10. WPF Datagrid行号
- 11. WPF DataGrid:默认取消第一行选择
- 12. 选择并取消选择wpf datagrid中的行mvvm friendly
- 13. 停止用户选择/取消选择WPF DataGrid中的行
- 14. WPF Datagrid取消选择控制禁用时的行
- 15. WPF datagrid动态列消失
- 16. 取消Datagrid rowcommand
- 17. WPF Toolkit DataGrid多选:如何获取SelectedItems?
- 18. WPF DataGrid多线程崩溃
- 19. 如何隐藏wpf datagrid行选择器
- 20. WPF 4 DataGrid:获取RowHeader的行号
- 21. WPF DataGrid中获取行项目
- 22. 获取DataGrid中选定的行项WPF
- 23. WPF DataGrid行模板
- 24. 删除Datagrid行(WPF)
- 25. WPF DataGrid行问题
- 26. WPF DataGrid页脚行
- 27. 如何以编程方式更改wpf DataGrid中选定行的行高?
- 28. 取消在DataGrid中添加新行
- 29. WPF MVVM DataGrid行到另一个DataGrid
- 30. 如何刷新WPF DataGrid?
是否要永久删除蓝色突出显示的边框? –
@ RV1987我只是不希望它成为高线。例如。第三行是高线,但我希望它不像其他行一样高。我应该在哪里点击删除highline? – KMC