我正在使用一个使用DataGrid控件的Silverlight 5项目。 我想水平显示网格内的数据。我参考了here。
我能够使用LayoutTransformer并且数据网格已经旋转。但是我面临一个小问题。
Issue: The Cell headers are vertically displayed.
我希望这些单元格标题水平显示。我尝试修改标题样式。能够旋转标题,但标题文本被剪裁,因为周围的矩形没有放大。
这是我写的XAML代码
<Style x:Key="GridHeader" TargetType="ContentControl">
<Setter Property="Background" >
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="White" Offset="0"/>
<GradientStop Color="Silver" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ContentControl">
<Border
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="2">
<ContentControl
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Cursor="{TemplateBinding Cursor}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
FontFamily="{TemplateBinding FontFamily}"
FontSize="{TemplateBinding FontSize}"
FontStretch="{TemplateBinding FontStretch}"
Foreground="{TemplateBinding Foreground}"
IsTabStop="{TemplateBinding IsTabStop}"
Margin="{TemplateBinding Padding}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RenderTransformOrigin="0.5,0.5" >
<ContentControl.RenderTransform>
<CompositeTransform Rotation="90"/>
</ContentControl.RenderTransform>
</ContentControl>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Code for 1 column. Similarly I have added more columns to the DataGrid-->
<sdk:DataGridTemplateColumn Header="IPTV12MISTarget" HeaderStyle="{StaticResource GridHeader}" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<toolkit:LayoutTransformer>
<toolkit:LayoutTransformer.LayoutTransform>
<RotateTransform Angle="90"/>
</toolkit:LayoutTransformer.LayoutTransform>
<TextBlock Text="{Binding IPTV12MISTarget}" Margin="5"></TextBlock>
</toolkit:LayoutTransformer>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<toolkit:LayoutTransformer>
<toolkit:LayoutTransformer.LayoutTransform>
<RotateTransform Angle="90"/>
</toolkit:LayoutTransformer.LayoutTransform>
<TextBox Text="{Binding IPTV12MISTarget, Mode=TwoWay}" Margin="5"></TextBox>
</toolkit:LayoutTransformer>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
问题:如何扩展标题矩形以显示完整的标题内容?
答案 0 :(得分:0)
不要使用RenderTransform
,而是使用LayoutTransformer
(包含在SL5中,是Silverlight5之前的工具包的一部分)。
那你现在在哪里:
<ContentControl ...>
<ContentControl.RenderTransform> ...90...</ContentControl.RenderTransform>
</ContentControl>
写
<LayoutTransformer>
<LayoutTransformer.LayoutTransform>
<RotateTransform Angle="90"/>
<LayoutTransformer.LayoutTransform>
<ContentControl .../>
</LayoutTransformer>