各位WPF高手,我在我的前台页面中绑定了datagrid的样式,但是不论怎么改,行数据都无法居中,请问是什么原因啊?难道是设置冲突?
1、页面前提xaml代码
1 <Grid Margin="-6,0,0,0" Background="#CEEDC4" >
2 <DataGrid IsReadOnly="True" Style="{StaticResource dataGridStyle}" CellStyle="{StaticResource dataGridCellStyle}" RowStyle="{StaticResource dataGridRowStyle}" AlternatingRowBackground="#d7e6d9" Height="490" HorizontalAlignment="Center" Name="dataGrid1" VerticalAlignment="Top" Margin="6,31,0,0" Width="780" RowHeaderStyle="{StaticResource dataGridRowHeaderStyle}" ColumnHeaderStyle="{StaticResource dataGridColumnStyle}">
3 <DataGrid.Columns >
4 <DataGridTemplateColumn Header="">
5 <DataGridTemplateColumn.CellTemplate>
6 <DataTemplate>
7 <RadioButton Name="cbCheck" Checked="CheckBox_Checked" ></RadioButton>
8 </DataTemplate>
9 </DataGridTemplateColumn.CellTemplate>
10 </DataGridTemplateColumn>
11
12 <DataGridTextColumn Header="团号" MinWidth="120" Binding="{Binding Path=GroupNum}"/>
13 <!--<DataGridTextColumn Header="旅行社" Width="100" Binding="{Binding Path=TravelagencyName}"/>-->
14 <DataGridTextColumn Header="国籍" MinWidth="70" Binding="{Binding Path=NationalityName}" />
15 <DataGridTextColumn Header="计划/实际人数" MinWidth="100" Binding="{Binding Path=Reserved1}" />
16 <DataGridTextColumn Header="预计入境时间" MinWidth="120" Binding="{Binding Path=Intime}"/>
17 <DataGridTextColumn Header="预计出境时间" MinWidth="120" Binding="{Binding Path=Outtime}"/>
18 <DataGridTextColumn Header="入境航次" MinWidth="70" Binding="{Binding Path=InairlineNum}"/>
19 <DataGridTextColumn Header="出境航次" MinWidth="70" Binding="{Binding Path=Outairlinenum}"/>
20 <DataGridTextColumn Header="状态" Width="*" Binding="{Binding Path=Reserved3}" MinWidth="80"/>
21 </DataGrid.Columns>
22 </DataGrid>
2、app.xaml样式代码
1 <!--dataGrid行样式-->
2 <Style x:Key="dataGridRowStyle" TargetType="DataGridRow">
3 <Setter Property="Background" Value="White"/>
4 <Setter Property="Cursor" Value="Hand"></Setter>
5 <Setter Property="VerticalContentAlignment" Value="Center" />
6 <Setter Property="HorizontalContentAlignment" Value="Center"/>
7 <Style.Triggers>
8 <Trigger Property="IsMouseOver" Value="True">
9 <Setter Property="Background" Value="#c4cec5"/>
10 </Trigger>
11 <Trigger Property="IsSelected" Value="True">
12 <Setter Property="Background" Value="#c4cec5"/>
13 <!--<Setter Property="Foreground" Value="Black"/>-->
14 </Trigger>
15 </Style.Triggers>
16 </Style>
17 <!--行标题属性设置-->
18 <Style x:Key="dataGridRowHeaderStyle" TargetType="DataGridRowHeader">
19 <Setter Property="Width" Value="0"/>
20 </Style>
21 <!--列标题属性设置-->
22 <Style x:Key="dataGridColumnStyle" TargetType="DataGridColumnHeader" >
23 <Setter Property="Background" Value="White" />
24 <Setter Property="FontWeight" Value="Bold"/>
25 <Setter Property="FontSize" Value="13" />
26 <Setter Property="BorderBrush" Value="#FF766E6E"></Setter>
27 <Setter Property="BorderThickness" Value="0.4"></Setter>
28 <Setter Property="HorizontalContentAlignment" Value="Center"/>
29 </Style>
30
31 <Style x:Key="dataGridStyle" TargetType="DataGrid">
32 <!--<Setter Property="Margin" Value="5,-110,5,50"></Setter>-->
33 <Setter Property="HorizontalGridLinesBrush" Value="#FF766E6E" />
34 <Setter Property="VerticalGridLinesBrush" Value="#FF766E6E" />
35 <Setter Property="VerticalContentAlignment" Value="Center" />
36 <Setter Property="HorizontalContentAlignment" Value="Center"/>
37 <Setter Property="BorderThickness" Value="2"/>
38 <Setter Property="BorderBrush" Value="#EEEEEE"></Setter>
39 <Setter Property="AutoGenerateColumns" Value="False" />
40 <Setter Property="CanUserAddRows" Value="False" />
41 <Setter Property="CanUserDeleteRows" Value="False" />
42 <Setter Property="CanUserResizeColumns" Value="False" />
43 <Setter Property="CanUserResizeRows" Value="False" />
44 <Setter Property="FontSize" Value="12" />
45 <Setter Property="FontFamily" Value="微软雅黑"></Setter>
46 <Setter Property="SelectionMode" Value="Single" />
47 <Setter Property="SelectionUnit" Value="FullRow" />
48 <Setter Property="Background" Value="White" />
49 <Setter Property="Cursor" Value="Hand"></Setter>
50 </Style>
51
52
53 <Style x:Key="dataGridCellStyle" TargetType="DataGridCell">
54 <Setter Property="VerticalContentAlignment" Value="Center" />
55 <Setter Property="HorizontalContentAlignment" Value="Center"/>
56 <Setter Property="Height" Value="29"/>
57 <Style.Triggers >
58 <Trigger Property="IsSelected" Value="True">
59 <Setter Property="BorderBrush" Value="#a2a2a0"></Setter>
60 <Setter Property="Background" Value="#c4cec5"></Setter>
61 <Setter Property="BorderThickness" Value="0.5"/>
62 <Setter Property="FontSize" Value="12" />
63 <Setter Property="FontFamily" Value="微软雅黑"></Setter>
64 <Setter Property="FontWeight" Value="UltraBlack"></Setter>
65 <Setter Property="Foreground" Value="Black"></Setter>
66 </Trigger>
67 </Style.Triggers>
68
69 </Style>
使用模版列把
<DataGridTemplateColumn Header="团号" Width="12"> <DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<TextBlock Text="{Binding Path=GroupNum}"></TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
谢谢,已经解决
请问可以详细说下怎样用模板嘛?菜鸟猜开始学习WPF
假如没有模板列,直接绑定ItemSource的话,如何设置居中
Style:
<!--居中DataGridTextColumn-->
<Style x:Key="CenterAlignmentStyle" TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center"/>
</Style>
用法:
<DataGridTextColumn IsReadOnly="True" Header="样例" ElementStyle="{StaticResource CenterAlignmentStyle}" Width="100" />
本质,对于DataGridTextColumn来说,就是一个包含了TextBlock的DataGridTemplateColumn,完毕。