小编Tom*_*Bot的帖子

WPF DataGrid:使用Horizo​​ntalAlignment时,未正确突出显示所选行

我有DataGrid一个列需要与右边对齐.为此,我使用

<DataGridTextColumn.CellStyle>
  <Style>
    <Setter Property="FrameworkElement.HorizontalAlignment" Value="Right"/>
  </Style>
</DataGridTextColumn.CellStyle>
Run Code Online (Sandbox Code Playgroud)

这工作正常,如下所示:

在此输入图像描述

不幸的是,当选择行时,未正确突出显示对齐的单元格.只突出显示数据,但数据左侧的空白区域不是,如下所示:

在此输入图像描述

此外,数据左侧的区域对鼠标点击不再敏感.在上面的示例中,单击"12 .34"左侧的单击将不会选择第一行(但是"A1"右侧的单击将会出现).总而言之,这会带来糟糕的用户体验.

那么,如何在HorizontalAlignment不破坏行选择的情况下做到这一点?我希望突出显示整行,我希望能够在任何地方单击以选择行.

我正在使用VS 2010,.NET 4,Win XP和Win 7.

重现我的例子的代码:

namespace WpfApplication2
{
  public class ListItem
  {
    public string FieldA { get; set; }
    public decimal FieldB { get; set; }
    public string FieldC { get; set; }
  }
}

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:My="clr-namespace:WpfApplication2" 
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <x:Array x:Key="List" Type="{x:Type My:ListItem}">
            <My:ListItem FieldA="A1" FieldB="12.34" FieldC="C1"/>
            <My:ListItem FieldA="A2" FieldB="1000.00" FieldC="C2"/>
            <My:ListItem FieldA="A3" FieldB="987.6" FieldC="C3"/>
        </x:Array>
    </Window.Resources> …
Run Code Online (Sandbox Code Playgroud)

wpf xaml datagrid alignment

3
推荐指数
1
解决办法
1509
查看次数

标签 统计

alignment ×1

datagrid ×1

wpf ×1

xaml ×1