因此,我得到了下一个问题: 我正在设置一个自定义的表格(从数据库中获取),其中单元格的内容将被包裹。 我可以正确设置视图。该代码是:为所有单元格设置TextWrapping以使用模板
<Grid Style="{StaticResource FormBackground}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="20" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="20" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="15" />
<RowDefinition Height="*" />
<RowDefinition Height="40" />
<RowDefinition Height="10" />
</Grid.RowDefinitions>
<Grid Grid.Column="1" Grid.Row="1">
<Border Style="{StaticResource DGBorder}">
<DataGrid x:Name="usuariosGrid"
AutoGenerateColumns="False"
CanUserAddRows="False"
Grid.Row="0"
Style="{StaticResource Table}" >
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Width="40" Binding="{Binding Id}" IsReadOnly="True">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Nombre" Width="*" Binding="{Binding Nombre}" IsReadOnly="True">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Apellido Paterno" Width="*" Binding="{Binding ApellidoPaterno}" IsReadOnly="True">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Apellido Materno" Width="*" Binding="{Binding ApellidoMaterno}" IsReadOnly="True">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="CorreoElectronico" Width="*" Binding="{Binding CorreoElectronico}" IsReadOnly="True">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Border>
</Grid>
做工不错,但是是非常丑陋的,因为我必须设置文本框 - > TextWrapping - >自定义包裹每列。另外 - 该项目包含多个DataGrid。所以,可以肯定的 - 我想这一切打包到一个资源字典,那就是:
<Style x:Key="Table" TargetType="DataGrid">
<Setter Property="Foreground" Value="{StaticResource WhiteBrush}" />
<Setter Property="RowBackground" Value="Transparent"/>
<Setter Property="AlternatingRowBackground" Value="{StaticResource DarkBlueFadedBrush}" />
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="ColumnHeaderStyle" Value="{StaticResource DGColumnHeader}" />
<Setter Property="RowStyle" Value="{StaticResource SelectedRow}"/>
<Setter Property="GridLinesVisibility" Value="None" />
<Setter Property="RowHeaderWidth" Value="0" />
<Setter Property="BorderBrush" Value="{StaticResource LightBlueBrush}" />
</Style>
而在这一点有趣的开始:不支持将其设置为风格DataGridTextColumn。
好吧 - 哪里是遗嘱,哪里有办法。网络上的一位同志说,并提出了使用后面代码的建议。这是公平的。但是我有一个信念,那就是这种类型的改进应该被分开(并且因为有必要将代码添加到每个包含表单的观众)。
任何意见,工作指示等,将不胜感激。
看起来像我一直在急于或有点。当我再看一眼时 - 我的解决方案似乎完全等于您的建议。所以 - 标记你的一个是正确的。谢谢。 –