聚焦颜色不改变WPF改变输入像选项卡移动焦点

时间:2014-04-06 04:46:03

标签: c# wpf xaml datagrid

我有WPF的数据网格。我已经改变了我的聚焦控制键盘,使得像Tab一样输入,这样我就可以通过Enter轻松改变焦点。

我使用了这段代码

 public static void PreviewKeyDown(object sender, KeyEventArgs e)
    {
        //ganti enter dengan tab
        if (e.Key == Key.Enter)
        {

            if (Keyboard.FocusedElement is FrameworkElement)
            {
                e.Handled = true;
                (Keyboard.FocusedElement as FrameworkElement).MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
            }
        }
    }

在mainwindow.xaml.cs中我使用了这段代码

this.PreviewKeyDown += Tools.ToolsKeyboard.PreviewKeyDown;

但是当我在datagrid中使用时,当前焦点控制的焦点颜色不会像这张图片那样改变:

wpf focus http://i62.tinypic.com/9787qo.jpg

如何在第一次加载时使丢失的焦点控制变为正常?

更新

这是我的数据网格样式

  <DataGrid.Resources>
            <Style BasedOn="{StaticResource {x:Type DataGridCell}}" 
                   TargetType="{x:Type DataGridCell}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type DataGridCell}">
                            <Grid Background="{TemplateBinding Background}">
                                <ContentPresenter VerticalAlignment="Center"
                                  HorizontalAlignment="Center" />
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="DataGridCell.IsSelected" Value="True">
                        <Setter Property="Background" Value="#CCDAFF" />
                        <Setter Property="Foreground" Value="Black" />

                    </Trigger>
                </Style.Triggers>
            </Style>
            <Style TargetType="{x:Type TextBlock}">
                <Setter Property="TextAlignment" Value="Center" />
            </Style>

        </DataGrid.Resources>

0 个答案:

没有答案