ygo*_*goe 5 wpf datagrid focus contextmenu
我的DataGrid分配了一个ContextMenu,其中包含对所选行执行某些操作的命令.这已经很好了.
问题是,每次打开ContextMenu时(通过鼠标右键或菜单键),DataGrid都会失去焦点,所选行会将其背景颜色从蓝色变为浅灰色.这是一个很大的对比,用户会得到清除选择的印象,并且不确定上下文菜单是否为正确的行打开.
颜色变化非常好,非聚焦项目不应该有焦点颜色.但打开上下文菜单不应该触发它.
这是一些XAML代码:
<DataGrid
HeadersVisibility="Column"
HorizontalGridLinesBrush="#cccccc" VerticalGridLinesBrush="#cccccc"
BorderBrush="#cccccc" Background="{x:Null}"
CanUserReorderColumns="False" IsReadOnly="True"
ItemsSource="{Binding MyItems, NotifyOnTargetUpdated=True}"
AutoGenerateColumns="False"
SelectionChanged="DataGrid_SelectionChanged">
<DataGrid.Columns>
<DataGridTextColumn .../>
<DataGridTextColumn .../>
<DataGridTextColumn .../>
</DataGrid.Columns>
<DataGrid.ContextMenu>
<ContextMenu DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}">
<MenuItem Header="Command text" Command="{Binding MyCommand}"/>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
以及该问题的带注释的屏幕截图:

我该如何解决这个问题?
小智 4
由于我碰巧遇到了同样的问题,所以我在另一个问题中找到了解决方案(对我来说): Retain DataGrid IsSelectionActive when a ContextMenu opens in WPF?
我刚刚将 DataGridCell 样式复制到我的代码中并且它起作用了。
| 归档时间: |
|
| 查看次数: |
1465 次 |
| 最近记录: |