我在我的WPF GUI中使用了一个datagrid,用户可以在其中双击一行来查看包含详细信息的页面(这很好用):
不幸的是,一个单元格的边框在一行中单击(一次)后会可见,尽管我已经使用了选择单元FullRow
。我尝试了不同的选项,颜色等,但每次都显示边框。我尝试了How to suppress DataGrid cell selection的步骤,但它只是改变了datagrid的风格。
<DataGrid x:Name="DataGridMeasuringTasks" SelectionUnit="FullRow" Margin="20,145,0,44"
RowDetailsVisibilityMode="VisibleWhenSelected" CanUserAddRows="False"
CanUserDeleteRows="False" HorizontalAlignment="Left" Width="1612"
SelectionMode="Single" IsReadOnly="True">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="#FFF0F0F0" />
</Style>
</DataGrid.RowStyle>
<DataGrid.Background>
<SolidColorBrush Color="#FFF0F0F0"/>
</DataGrid.Background>
</DataGrid>
如何删除边框?
3条答案
按热度按时间irtuqstp1#
此处定义了数据网格单元格的MaterialDesign样式。您必须复制并调整该样式,因为边框画笔的触发器将优先于本地值。请删除此部分。
然后,将样式
CellStyle
分配给特定的DataGrid
,或者将其移动到作用域中的资源字典,甚至是应用程序资源,以便自动将样式应用于作用域中的所有单元格。a8jjtwal2#
有一个更简单的答案:将数据网格的MaterialDesignTextBoxBorder设置为透明。
请注意,这只适用于只读数据网格。如果您的单元格是可编辑的,材料设计文本框下面的行将不会显示(但当您编辑特定单元格时,边框在我看来不是问题)。
nfzehxib3#
有一种方法可以只覆盖边框样式而保留其他样式。我所做的是通过将
BasedOn
设置为MaterialDesignDataGridCell
来创建一个样式,这样我仍然拥有MUI中的所有其他样式,然后我在我的样式中自定义了BorderBrush
和BorderThickness
: