3
我有DataGrid
,其中一列需要對齊到右側。要做到這一點我用WPF DataGrid:使用HorizontalAlignment時,所選行未正確突出顯示
<DataGridTextColumn.CellStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Right"/>
</Style>
</DataGridTextColumn.CellStyle>
的正常工作,如下所示:
不幸的是,排列的孔不正確的時候選擇了一行突出顯示。只有數據被突出顯示,但空區中的數據的左邊是不是,如下所示:
此外,該區域中的數據的左邊是不是鼠標點擊敏感了。在上面的例子中,'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>
<Grid>
<DataGrid ItemsSource="{StaticResource List}" AutoGenerateColumns="False" SelectionUnit="FullRow" >
<DataGrid.Columns>
<DataGridTextColumn Header="ColumnA" Binding="{Binding Path=FieldA}" Width="150" />
<DataGridTextColumn Header="ColumnB" Binding="{Binding Path=FieldB, StringFormat='#,##0.00'}" Width="150" >
<DataGridTextColumn.CellStyle>
<Style>
<Setter Property="FrameworkElement.HorizontalAlignment" Value="Right"/>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="ColumnC" Binding="{Binding Path=FieldC}" Width="*" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
您是否嘗試過'HorizontalContentAlignment'? – 2011-04-20 06:55:36
'FrameworkElement'沒有'HorizontalContentAlignment'屬性。你可以說得更詳細點嗎? – TomBot 2011-04-20 14:26:26